This post is a brief introduction to forms related to esolangs. I want to clarify how I use terms such as “code art,” which sometimes refer to a host of overlapping practices. In part it’s a response to this intro to poetic computation by Sarah Groff-Palermo). Groff-Palermo describes code art as works where “code is regarded as a system of signs no different from any other type of language.” This means that the text of the code itself — not just its behavior or output — is essential to the experience of the work.

I see this as different from works that simply point to a certain type of coding in their behavior (such as a pixel-sorted picture). Here, the details of the code implementation are not essential for us to “get” the work itself — the behavior of the code is implied, but we don’t need to read it. Another type of pixel-sorting, Glitchsort, comes closer, in that it produces visualizations of different sorting algorithms — the difference between a bubble sort and a shellsort manifest visually in the final work.

However, in Code Art, the code itself is the medium and must be read for the work to function. Pall Thayer’s work Sleep (from his Microcodes) is a pun on the meaning of sleep to a computer vs its meaning to a person. It renders ridiculous the commanding voice we use with a machine (as if we were speaking to a disobedient child). In code art such as his, the resulting work is runnable code. One reason Thayer uses Perl is because of its readability to non-programmers.

Code Poetry often refers to work such as Mez Breeze’s. Her Mezangelle complicates the line between human and machine communication in a way informed more from a literary tradition than code art’s contemporary art perspective. The broken, code-like assemblages of words layer meanings, but unlike in code art, it’s not important for the resulting piece to function as executable code. Code poetry is a creole between machine and human communication.

Esolangs (named for “esoteric programming languages”) are, like all programming languages, systems of thought encoded into grammars. Each language is a simple list of rules and definitions. Most esolangs allow for many (perhaps infinite) different programs to be written, but the expression of the work is in how one constructs these programs (or sometimes in how the resulting programs behave). For example, the language Whitespace, in which all programs are expressed in space, tab, and return, producing visually empty files. Most esolangs were produced by programmers at play, who were not concerned about code art or in presenting their work in either an art or literary context.

An important related form is Synthetic Languages: spoken languages which, like esolangs, have distinct points of view which are revealed through use. They are designed to be learned quickly, at least enough to begin basic communication and to get a sense of their vision. The most developed language is Toki Pona by Sonja Lang, which attempts to encode both honesty and optimism (which ordinarily seem like competing interests) into the language itself.  

There are a great many interstitial works that cross and complicate these boundaries, especially recently. But it is worth delineating these terms to make clear their histories and sets of concerns. We will look more deeply at these histories in upcoming posts, along with works that cut across these styles.