Back in school, I studied literature and languages. During that time and for many years after, I cultivated my appreciation for words by continuing to read pretty regularly, writing a ton, and teaching English for a few years — all the while picking up a few new languages, too.
Now, as a fledgling software engineer, that journey continues. The point of the languages I’m learning is still the same, but I just happen to be communicating with computer hardware versus other people. Programming languages, however, are designed as a set of formal instructions that produce a specified output. And while traditional programming languages are typically designed to make interfacing with computing hardware easier by addressing particular challenges, there exists a segment of people in the world designing programming languages for entirely different reasons.
Enter esoteric programming languages. Sometimes shortened to esolangs, esoteric languages are designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to other languages, as a joke. As functionally important as traditional programming languages are, there’ll always be that part of me attracted to the many non-traditional, creative ways to use common tools in clever, experimental, subversive, or even absurd ways.
Esolangs occupy an artistic, expressive space as a way to “shift attention from command and control toward cultural expression and refusal” the same way the evolution of Ebonics in the American lexicon was an implicit act to transform and own the language of an oppressive power or the portmanteau words Lewis Carroll in classics like Alice’s Adventures in Wonderland were playfully creative acts.
To me, the deconstructive aspects of esolangs recall everything from the works of John Cage to the absurdist humor of Eric Andre, so while we can definitely go super deep into the subject and its relation to art and communication as a whole, let’s take a step back and appreciate some interesting examples of esoteric languages out there in the wild!
More art than actual programming language, mezangelle is a poetic-artistic language developed in the 1990s by Australian-based Internet artist Mez Breeze (Mary-Anne Breeze). By mixing English, ASCII art, fragments from programming language source code, markup languages, regular expressions, and IRC shorthands, emoticons, phonetic spelling and slang, it remixes the basic structure of English and computer code through the manipulation of syllables and morphemes. Through this, it alters words and letters from discrete, digital units into fluid, quasi-analog information. This fluidity and flow corresponds to its artistic use in email postings.
Notable for its extreme minimalism, Brainf**k was created in 1993 and contains just eight distinct characters, each of which is a command that operates directly onto memory. The program above, for example, outputs “Hello World!”.
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP
Created as a parody language designed to satirize aspects of programming languages of the time, the Compiler With No Pronounceable Acronym — otherwise known as INTERCAL — is one of the most famous examples of an esoteric language. Designed to be as obtuse and ridiculous as possible(as seen in the “Hello World!” program above), one particularly hilarious aspect of the language is the error of the program either “not being polite enough” or being “excessively polite” popping up if not enough/too many PLEASE keywords are used.
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
As a product of the internet, this one is definitely one of my favorites. By re-contextualizing online cat-meme-speak for programming, LOLCODE was born. Surprisingly readable, all you need to do is take a quick glance at a few of its statements to get an idea of how it operates:
HAI [VERSION]In all LOLCODE programs, HAI ("Hi!") introduces the program and specifies the version (although this isn't actually used yet).
CAN HAS [LIBRARY]?In many programming languages, one of the first statements will be a library inclusion for common functions such as input and output.
VISIBLE [MESSAGE]prints a message to the screen.
HAI introduces the program,
KTHXBYE (which is "K," "THX," and "Bye" all strung together, meaning "OK, thanks, bye") terminates it.
Shakespeare Programming Language
The Infamous Hello World Program.
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.
Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave
hero and thyself! Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
Scene II: The praising of Juliet.
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!
Scene III: The praising of Ophelia.
Thou art as lovely as the product of a large rural town and my amazing
bottomless embroidered purse. Speak thy mind!
Thou art as loving as the product of the bluest clearest sweetest sky
and the sum of a squirrel and a white horse. Thou art as beautiful as
the difference between Juliet and thyself. Speak thy mind!
[Exeunt Ophelia and Hamlet]
Act II: Behind Hamlet's back.
Scene I: Romeo and Juliet's conversation.
[Enter Romeo and Juliet]
Speak your mind. You are as worried as the sum of yourself and the
difference between my small smooth hamster and my nose. Speak your
Speak YOUR mind! You are as bad as Hamlet! You are as small as the
difference between the square of the difference between my little pony
and your big hairy hound and the cube of your sorry little
codpiece. Speak your mind!
Scene II: Juliet and Ophelia's conversation.
Thou art as good as the quotient between Romeo and the sum of a small
furry animal and a leech. Speak your mind!
Thou art as disgusting as the quotient between Romeo and twice the
difference between a mistletoe and an oozing infected blister! Speak
Created by Jon Åslund and Karl Hasselström, the Shakespeare Programming Language (SPL) is designed to look like a Shakespearean play. A fantastic combination of two of my biggest interests, the language acts as a very verbose assembly language: stacks are declared with character lists while the dialogue between them manipulate their values and questions behave as conditionals. The above program demonstrates this verbosity, outputting “Hello World!”.