Secret Piece from Yoko Ono's Grapefruit (1964)
“The arts which today have the most vitality for the average person are the things he does not take to be arts” - John Dewey, Art as Experience
Esolangs are experiential works. As has been expressed since the earliest posts of esoteric.codes (reiterated in this twitter thread this morning), we engage with esolangs by writing code in them, which forces us to come to terms with their logic and with the behavior of the virtual machines they define.
This post is not about such languages.
This post is about languages that deliberately frustrate that experience. They make it hard to write code, not as an enticing challenge—like a Tarpit that promises Turing Completeness via strange machinations—but through absolute refusal. This includes languages where nothing is code or everything is, or where code can be written but carries no signification, or that otherwise break down that process of controlling a machine through a text or binary sequence. Many—but not all—are listed as Unusable for Programming on the esolangs wiki, which does not consider languages like brainfuck and Malbolge “unusable” but only (extremely) inconvenient.
The unprogrammables exist for our contemplation alone. They are no less experiential than the standard esolang; however, they move the experience of the language into the purely cognitive. In other words, they’re still very much esolangs: works that expand ideas of computing; many have weaker or non-existent computational class considered merely as jokes, dismissed without their ideas fully considered.
In this way, they resemble the Fluxus event scores, performance scores that range from the performable to the physically impossible, and like these borderline esolangs, also dealt largely in jokes. Considering where Fluxus went with these works can both give a means to better understand what these languages are doing, as well as point to other ways of engaging with these questions
Living up to this illustration describing esoteric.codes by Job van der Zwan
Led by George Maciunas, the Fluxus movement was against artifice in art; and in Maciunas's view, nearly all of what was called art was weighed down by convention and falseness. There is no reason to believe he would feel differently about the art of today. Maciunas called for the merging of art and life, to make one indistinguishable from the other. Always sickly, his signature piece is perhaps the Solo For Sick Man, an instruction-based event piece with checkboxes for “cough,” “lunger,” and “drop pills over floor” that he would perform inadvertently, with only himself for an audience. For him, “everything is art and everyone can do it.”
If everything is art, perhaps everything is also computation. Computation continually emerges in places we don’t expect it, and programmers can’t seem to stop making programming languages accidentally. All sorts of systems are accidentally Turing Complete, from C++ templates to Intel's MOV assembly instruction to weird subsets of JS. Furthermore, Turing Complete systems are discovered in natural systems with no designer. Human heart tissue is a computer. NOR gates can be simulated in it, and so, if charges are applied to it repeatedly over time incorporating results from previous runs, they are a Turing Complete system. Thus cardiac tissue has the Halting Problem: it can’t be predicted if it will stop or reach regularity. Unfortunately, human heart tissue is boring as a computational medium: NOR gates are well-understood, and a cluster of them doesn’t make for a particularly compelling esolang.
George Brecht, Assembled Notes (1961)
Fluxus artist George Brecht first conceived of the event score as a simple, usually short performance score with an ambiguous relationship to actual performance. He describes them as "an art verging on the non-existent; dissolving into other dimensions, or becoming dimensionless, having no form." Brecht took an interest in chance operations while a student of John Cage’s, and his scores often list banal events like turning on and off lamps that are more often performed by accident than with intention. His simplest piece, “Exit,” fulfilled Maciunas’s vision of that merging of art and life through an instruction that people continually follow without thought, but which Brecht singles out both in the event score and various objects and films that make people familiar with the work reflect on the score when recognizing its accidental performance.
Ↄ (a languge of mine, pronounced "un-C") is never programmed in intentionally. Its programs are the inverse of C: every program that is not a C program is a program in Ↄ. There is another language has the same exact set of programs but conceptually it is very different: Correct Syntax Error (created anonymously but added to the esolangs wiki by kwikrick). In both languages, a valid C program is syntactically incorrect: in Correct Syntax Error, the titular error will be thrown (as being "correct" is unacceptable), but Ↄ will remain silent; its performance is intended to not be noticed. Both languages leave the actual behavior of code undefined. So many texts are valid in either language that it would be very hard to define it in a way that allows for computation and doesn't introduce other syntax errors apart from being a C program. Ↄ has no compiler: the behavior of its commands (which are signified by where in the program C syntax errors occur) are obscured so that any C compiler might also be a Ↄ interpreter: tiny glitches or strange occurrences in C compilation might be effects of an Ↄ interpretive process.
These were created in the same sense of play of other esolangs, questioning the way programmers engage with interpretive systems. They are cousins of that classic esolang of double meanings, Whitespace; but where Whitespace’s minimalism is restricted to its lexicon and its ambiguity to the text of code, these languages are minimal and ambiguous in their commands and the behavior of those commands.
Similarly, Ken Friedman’s work “THE DISTANCE FROM THIS SENTENCE TO YOUR EYE IS MY SCULPTURE” (1971) has size but no physical presence other than that described by the relationship between the card it is printed it on and the eye of the viewer. It lacks what nearly all sculptures have but still has a physical presence; it is perhaps most similar to the “purely conceptual” esolangs that lack anything beyond the recognizer.
In a similar vein of extremely constrained language is the esolang 2014. Released on Dec 31, 2014, its execution is dependent on the current year being 2014, meaning that programs that had been valid at that time no longer are, and no new programs can be written for it; the conditions of code validity have closed. However, the language is fully defined and has a working interpreter (and will work if you set your clock back to the correct year). It is reminiscent of “Write a poem and bury it,” a work by the great poet of event scores, Yoko Ono. Ono began with physical works, paintings, as Alexandra Munroe describes in "Spirit of YES: The Art and Life of Yoko Ono”:
Her sumo-ink canvases at AG Gallery required an action or an idea on the part of the viewer for their completion. Visitors were invited to walk on Painting to Be Stepped On, a torn piece of linen lying on the floor, and to drop water on the Waterdrop Painting. Shadow Painting, a blank piece of linen hanging beside a window, was completed when shadows hit its surface in random and fleeting patterns.
Ono's work progressed from participatory paintings to the renouncing of the canvas object altogether. Her take on the event score had a more lyric quality than the brash mundanity of Maciuanas.
Ono’s less-weighty philosophical theorems were structurally more provocative than didactic, more open than tautological. She used language but language itself was not her concern; experience was.
Her scores of the 1960s and 70s work equally well as tweets:
Watch the sun until it becomes square.— Yoko Ono (@yokoono) August 6, 2015
While David Madore's Unlambda is a classic Turing Tarpit, in his recent interview for esoteric.codes, he discusses several languages created for hyperarithmatic machines: those that can traverse from natural numbers into infinities. These languages are perfectly valid and well-defined; they simply run on machines that can’t be constructed in our Universe. Their poetry is a mathematical one, exploring possibilities of computation beyond what can be enacted by us. They are theoretical provocations, and although they might be “Unusable for Programming” they would be quite useful if they were possible, expanding into a class beyond Turing Completeness and solving the Halting Problem. Madore’s work in particular shows how esolangs, rooted in programming culture, computer science, and mathematics create a poetics by asking questions that look beyond the writing of code.
Programming languages are logical systems; they begin in the conceptual space, and it is little surprise that they find parallels in the conceptual art territory. While this is a small list of languages, many are from the last few years; perhaps this means we will see more of these languages that ask programmers to stop coding and consider what a language without code might say.