The Ecstatic, Exotic World of Esoteric Programming Languages

Nicholas Echevarria
Mar 24 · 6 min read
Image for post
Image for post
“Hello World!” in the Esoteric Programming Language Piet

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”[11] 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!

mezangelle

Image for post
Image for post
A Mezangelle post on the 7–11 mailing list, 1998

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.

Brainf**k

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!”.

INTERCAL

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.

LOLCODE

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.

KTHXBYEJust as HAI introduces the program, KTHXBYE (which is "K," "THX," and "Bye" all strung together, meaning "OK, thanks, bye") terminates it.

Shakespeare Programming Language

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!”.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store