Glide


Glide is a polyglot, literate programming editor with audio/visual output.
It produces documents very much like this page you are viewing; which was made entirely in Glide.

Glide documents can contain code and arbitrary text, images, videos, static and interactive HMTL content. Code can be evaluated directly from within the document. A single document can contain any number of programming languages. And any language can be mixed/embedded with any other language and evaluated together. 

Not that you'd want to, but you could embed, say, APL in Common Lisp in Python in Julia in JavaScript, and evaluate it all at one go:
Embedded result dim is: 65px

This is obviously just for illustration. Usually one embeds 2, maybe 3 languages at most. 

Glide can run all language/environments: Common Lisp, Javascript, Python, Node.js, Julia, Haskell, Scheme, Clojure, Smalltalk, Ruby, OCaml, APL, Scala, Forth... to name just a few. 

Any program that can run on your computer, can run in Glide. Specifically, any interactive REPL/interpreter that can be run from the command line, can run in Glide. 
Glide can output evaluated values not only as text, but in any audio/visual form. 

This means that unlike other development environments it's not limited to basic plotting or a predefined subset of possibilities. But anything at all – entire games, 3d tools, parametrically generated art, or even music.  

Here's a small example:

For a sound project conducted at a primary school, lunchtime sounds were recorded. The following generates a spectrogram of the recording. Note how the spectrogram is output directly below the code as a result of evaluation.
ImageData {
data: Uint8ClampedArray(1878016) [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,
... 1877916 more items
]
}
Note: load_script and fft_analyse run asynchronously. To correctly execute the code above, you must evaluate these function calls individually and wait for them to finish before evaluating the code that follows. This can be made synchronous using promises or callbacks, but for the sake of clarity and brevity this is excluded from the code.
Glide also features:

•     A powerful code-editor, with syntax-highlighting and automatic indentation for over 100 languages, multiple-selections, regex search and replace, autocomplete etc.
•     Formatting and layout control comparable to word-processors.
•     An in-document terminal (xterm) with the ability to save session output.
•     Customizable themes and keyboard shortcuts.

Read the Manual for details. Glide is an unusual editor; and difficult to operate without reading the manual. The manual also contains important information regarding the (minimal) required initial configuration.
Glide is designed to aid in the code creation process, not take it over. It places focus on your terms and abstractions; not on the abstractions that constitute Glide.

Glide has:

•     No UI apart from the document, the cursor and a logger (hidden by default).
•     No need for specialized kernels or patched runtimes.
•     No network dependencies.
•     No specialized markup language, i.e. its WYSIWYG.
•     No tabs. One document per window is enough.
•     No notifications, not even for updates. (You may send an email with the subject glide-update to glide@64m.org to be notified when an update is available.)

Glide doesn't try to be an operating system. Or a bloated IDE.

If your experience is similar to mine, you'll find Glide helps you keep going much further on a programming idea than when you just write code in any code-editor.

– Varun A 

Glide is available for Mac and Linux.

This document was created using Glide.