February 4, 2023


Your Partner in the Digital Era

Programming Language Style and design as Art

NFTs have brought an onslaught of focus to gifs and other mobile phone-helpful passive media. But not all digital artwork practices translate simply to singular, collectible assets. Esolangs, programming languages built as kinds of self-expression, are pretty probably the the very least NFT-capable electronic artwork. Open up ended, local community dependent, and collaborative, they serve as a reminder that digital art has other histories and other futures.

The time period esolang is a portmanteau of “esoteric” and “language.” It was coined in the 1990s, when hacker-hobbyists started building odd languages with no realistic use. When they experienced minor interest in the artwork context of their operate, they brought a feeling of perform and conceptual sophistication that feels at house together with artwork by the MFA-educated. Then came digital poets and artists who regarded the probable of the medium.

A single of the factors esolangs have remained on the periphery of computational art is that they are programming languages, demanding a certain amount of money of personal computer-language literacy to realize and recognize. It is my goal to make them available and worthy of appreciation to the newbie and unfamiliar. I give 3 entry factors drawn from 10 many years of interviews I have conducted with practitioners throughout the spectrum. Very first up is multicoding, a procedure in which numerous meanings can be gleaned from the same textual content. Next, I investigate ethnoprogramming, a new challenge to the hegemony of English in the text of code. And at last, we flip to conceptual languages, strategy-art that operates in our heads, not on our machines.


Piet, a personal computer language developed by David Morgan-Mar in 1991 and named for Mondrian, is potentially the canonical instance of a multicoding esolang, that means a language that levels multiple readings of a single text. In the scenario of Piet, that “text” is not textual at all, but an image that serves as code in the language.

A software in Piet is an image, produced up of blocks of shade referred to as codels. Each individual codel is like a letter in mixture, they develop a command. A transition from gentle blue to dim red means “NOT,” whilst moving from red to yellow of comparable brightness will notify the equipment to “ADD.” The system is read through from the upper still left, but some commands change its directional move, allowing serpentine paths by way of the graphic.

Piet has grow to be the most perfectly-known multicoding language not only because it is visual, but because of its pretty much excellent aesthetic elasticity. Piet systems are commonly recognizable as these by people familiar with the language. Nevertheless its aesthetic is continuously individualized, expanded on, and challenged by the programmers who use it. Some produce illustrations the place only component of the impression functions as Piet, obscuring its programmatic nature. Other plans are strictly utilitarian, devoid of adornment. The most severe are pc-created on their own, showing up like bar codes or schematics for advanced circuits. Tomas Scoch and Matthias Lutter have applied it to make Mondrian-like visuals for Piet’s namesake, while other folks make heavier use of colours like cyan and magenta eschewed by Mondrian. A person of the most astonishing, the Pi system by Richard Mitton (reviewed by Morgan-Mar right here) uses the picture of a circle to symbolize a circle in code. It calculates Pi by virtually dividing the location of that circle, as drawn in the application, with the sq. of its radius the greater (and thus considerably less pixelated) the circle is drawn, the far more digits of Pi can be accurately calculated. This combines the lexical and semantic aspects of the circle jointly in a way that could only be accomplished in Piet.

There was no way for Morgan-Mar to foresee the instructions persons would take his language. The creator of an esolang commences a dialogue with the established of policies demarcated by the language, but it is the programmers who discover its limitations and intricacies. 1 parallel is the Oulipian problem to compose without having making use of the letter E, which we can endeavor ourselves or observe the approach of a writer by reading through George Perec’s novel La Disparition (1969). Likewise, the inventive likely of Piet is in the field of possibilities it generates, which we experience by way of the real operates programmers have produced for it. 

Where Piet’s code is built up of illustrations or photos, in:verse packages make photos or going written content. Its code doubles as poetry. What is exclusive in in:verse is its variable lexicon: the mapping of vocabulary to command is distinct for just about every poem (by using a “wordtable”), permitting programmer-poets to finely tune their input and output. To work out the sine of a range, a person system could use the phrase “alien,” even though one more takes advantage of “mushrooms.” The most appealing in:verse courses uncover a resonance concerning their vocabulary and their visible output. Its creator, Sukanya Aneja, is an engineer and artist who created on some traditions of esolanging (in:verse’s stack-primarily based architecture is comparable to quite a few early esolangs) although refining it for artistic purposes. Like Piet, it lets personal programmers a whole lot of control, but each piece is continue to recognizable as an in:verse function.

Jon Corbett, “The Ancestral Code” programming interface, with an energetic story “program” (remaining pane) and an “open feather” code block (proper pane) (© Jon Corbett 2021)


Jon Corbett’s language Cree# is part of a new wave of languages explained by theorist Outi Laiti as “ethnoprogramming.” Corbett, who is of Métis heritage, is designing the language, which is still in development, to mirror the language and logic of Métis tradition. But prior to we discover it in depth, some context is helpful.

In his e book Crucial Code Experiments, Mark Marino relates the record of programming languages that include vocabulary from organic language. The supply language is approximately generally English. He argues that “the prevalence of English in the most prevalent present-day programming languages signifies … a kind of electronic postcolonialism, or the manifestation of a colonizing power beyond the varieties of historic, geographical, or territorial colonialism.” 

Ethnoprogramming is an lively reaction to the phenomenon that Marino describes. An significant precedent for Corbett is Ramsey Nasser’s Arabic programming language ‘alb. Nasser established out to create a language for Arabic speakers discovering to code, but ran into biases embedded in programs he crafted on, most of which purport to be common but had minor thing to consider of non-English use as a end result, his function turned a document of that wrestle. As he asks in his essay “A Particular Computer for Small children of All Cultures,” “what is the Pashto translation of AbstractSingletonProxyFactoryBean?”

Corbett, in making Cree#, desired to go outside of changing English keywords (commands like “let” and “print”) with Cree keyword phrases in a static listing. For just one detail, Cree is a morphemic language and he wanted Cree#’s signifiers to hold programmatic this means at the syllabic degree, which is highly uncommon in programming languages. 

To system in Cree#, we require to comprehend not only Cree linguistics but also its cultural logic. To declare a variable (which can be thought of as a storage spot for information), just one must set it in both a mînisiwat, a berry bag, or maskihkîwiwat, a medicine bag. If the variable is day-to-day or transient, it would go in the berry bag. If it refers to a thing with cultural significance or sacred meaning, it goes in the maskihkîwiwat. Each and every time the programmer declares a variable, they choose in which it most effective suits. The closest strategy in mainstream languages is that of variable scope, but Corbett is encouraging the programmer to changeover to a worldview that is Cree.

To that close, each Cree# method is told in the form of a tale, with a established of regular figures and symbolic actions from Métis storytelling custom, prominently featuring a trickster raven and starting just about every software with a gesture of smudging. Corbett also has a variation of Cree# referred to as Ancestral Code, built not for general-reason computing, but as a substitute as a visible archive to protect stories from Cree and Métis Elders. Corbett’s nuanced producing about the project examines the troubles with analyzing what amounts of knowledge can be distribute a lot more widely and which are meant to stay only inside of the society, together with concerns of unintentionally incorporating Western views of Indigenous cultures into the language.

Bora Aydıntuğ, “bora_1.png.” This screenshot is of a software in in:verse. It displays each the code and the output of that code (the picture powering it) (courtesy Bora Aydıntuğ)


Is HTML a programming language? This problem is lifted just about frequently on Twitter. Although it is genuinely a issue of what pc labor we value or consider competent (and permit it be stated that html/css operate is programming and can be really tough), the point that this debate can occur at all factors to the fact that there is no clear technical line that demarcates what is or is not a programming language. Once in a while a person is tried by equating programming languages in typical with something referred to as Turing Completeness, which about signifies the skill of a language to represent any algorithm runnable on a conventional laptop or computer. Turing Completeness is a awful yardstick not only due to the fact of what it excludes but also simply because it delivers in all types of issues we wouldn’t contemplate programming languages, which include, as lately demonstrated, human coronary heart tissue

For every definition of programming language, there is an esolang that sits at its border. Esolangs blur the line among computing and other routines, a lot like Fluxus occasions and interventions did between art and lifetime. George Maciunas’s “Solo for a Unwell Man” (1962) recoded the involuntary actions of this frequently ill artist as general performance. For Maciunas, this was part of his attempt to obliterate almost everything that had turn out to be synthetic in art. If we simply cannot draw a line separating art and everyday living, perhaps the exact is correct of computation. We see this in the “found” esoteric languages, developed by no a single and nonetheless serving as computation from human heart tissue to Martin Kleppe’s JSFuck, an esoteric programming model in JavaScript that takes advantage of only punctuation marks. JSFuck was often latent in JavaScript, made by mistake it took Kleppe to recognize it and show other people how it operates. Now it is a well known esoteric style.

In the conceptual languages, no programming can happen. Some of these languages are extremely minimalist or maximalist. Most likely the most minimum is Needless, designed in 2005 by a pseudonymous esolanger identified as Keymaker. For Unwanted, any written content is way too a great deal, even an vacant file only the absence of articles qualifies as code in the language. The only valid software in the language is the file that doesn’t exist. After that file is (appropriately) not found, it is operate: its absence of code is interpreted as a command to print the supply code of the file to the display, which success in nothing considering the fact that there is no file to examine, no code to print (this is recognized as a “null quine”). The development of almost nothing from very little is a successful outcome for Unneeded.

In distinction, the mathematician David Madore has designed a series of transfinite languages that crack essential rules of computation and can rely to the infinite. They do so by functioning on an infinitely massive computer system, which can never be crafted in our actual physical universe. When no a person will ever code in them, they are beautifully legitimate, very well-defined languages.

These conceptual languages do not operate on our computers, but in our heads. Other conceptual languages may well rely on self-contradictory, or intentionally ambiguous, regulations. The language Malbolge, for instance, has a written definition that somewhat differs from its agent compiler, the two produced by Olmstead. Considering that there is no singular digital asset that defines the language, this contradiction designed a schism in the neighborhood amongst those who consider the bug is in a person or the other. Any one can produce their possess Malbolge interpreter that aligns with either.

This is why esolangs are inadequately served by the thought of NFTs. Of study course, sooner or later on, anyone will make an NFT of an esolang. But think about performing so for Piet: would it be tied to the record of policies for the language as defined by Morgan-Mar? To one particular of the several interpreters and programming environments others have designed for Piet programming? Or to any of the 1000’s of Piet programs? 

Portion of what would make esolanging remarkable is that interchange amongst a lot of contributors, the understanding that the language has additional to find out. When no a single discounts Morgan-Mar as Piet’s creator, his work finds its whole expression as a result of others’ initiatives. Likewise, conceptual languages with programs from the infinitely big to the infinitely compact obstacle the plan of digital objecthood, emphasizing strategy, method, and procedure, at the expense of static form. The most effective esolangs, like much great digital artwork, are conversations.

Editor’s Be aware: This short article is component of a special edition of Hyperallergic devoted to less than-identified art histories.