esoteric  +  programming languages  =  esolangs

To the unaccustomed eye, esolangs are impractical, useless and indecipherable. But for mindlessly bored programmers, creating such strange works of art becomes a captivating hobby, ineffably beautiful with its own poetic mark in the history of computer science and beyond. Probably. I wouldn’t know, I’ve never seen the point of making one. But I do appreciate these weirdest programming languages to date that are actually appealing to look at:

 

Weirdest programming languages

[ All of the following programming languages are astonishingly Turing Complete – just like Python and Javascript. Essentially, they can theoretically compute any program given enough time and memory. (Never mind impractical!) More on Alan Turing next time… ]

 


Piet

Piet Mondrian

Creator:  David Morgan-Mar

Theme:  Abstract art

Morgan-Mar is an Australian physicist. Though he is largely known in programming culture more for his numerous esolangs and webcomics.

Piet is one of several esolangs that are truly original. As can be seen in the collection of samples above, each are programs – or rather 2D bitmaps – reminiscent of abstract art à la Piet Mondrian.

Its interpreter executes code by moving pointers across the contiguous colour cells. Up to 20 different colours are supported, while variations of Piet can support more.

 

Chef

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. Variation Created by Mike Worth.

Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture

Cooking time: 25 minutes.

... ...

Creator:  David Morgan-Mar

Theme:  Meal recipe

Another famous proof-of-concept by the fabulous Morgan-Mar. It was designed to “appeal to cooks with different budgets”.

As a keen baker, I once tried following the exemplary Hello World! program. The cake didn’t taste so nice. Though that could be a shortcoming on my part.

 

LOLCODE

HAI 1.3
IM IN YR loop UPPIN YR var TIL BOTH SAEM var AN 10
	VISIBLE SMOOSH var AN " " MKAY!
IM OUTTA YR loop
KTHXBYE

Creator:  Adam Lindsay

Theme:  Internet memes

Lindsay released LOLCODE in 2007, back when he was a research fellow at Lancaster University’s computing department.

The above example code loops and prints from 0 to 9. Its keywords may remind you of LOLcat memes. Precisely because the entire language is drawn from the idiosyncratic vernaculars that often accompany those silly cats’ lolspeak.

For instance, ‘KTHXBYE’ – internet slang to signal a unilateral end to unwanted conversations – terminates the running program. Similarly, the ‘HAI’ keyword is necessary to introduce and specify versions for the program.

That being said, critics note that LOLCODE is no different to “normal” programming languages behind its lulzy syntax. Hence, on this account, it is technically a Weirdlang.

 

brainfuck

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Creator:  Urban Müller

Theme:  Minimalism

Müller is a Swiss engineer and creator of Aminet Archives in 1992. At one time, Aminet served the largest open source software archive on the internet.

Driven by his radical desire for ultra minimalist syntax, brainfuck is one of the weirdest programming languages to date. Offensive too, to the mind, as it takes extraordinary levels of patience. Even to code something as intuitively simple as Hello World! as in the example above.

It was the byproduct of writing a language with the smallest possible compiler for the Amiga OS. Since then, brainfuck has spawned countless equivalents and derivatives in esolangs circles that cleverly alter its semantics.

 

Poetic

stranger, i confess
i have longstanding problems
i'm unprepared for

Creator:  Josiah Winslow

Theme:  Poetry

Winslow is a computing student at Milwaukee Area Technical College who created this Haikuesque language as a joke.

This is probably my favourite brainfuck derivative. Just so… poetic. And absurdly natural!

The above shows a typical cat program that copies standard input to standard output. Basically, lengths of each word are converted into corresponding numbers. Every number is then in turn associated with a hard-coded instruction.

Bonus points for coding in Haikus. (Not really, but it’s encouraged!)

 

Shakespeare Programming Language

... ...

                    Act I: Hamlet's insults and flattery.

                    Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]

Hamlet:
   You lying stupid fatherless big smelly half-witted coward!

... ...

Creators:  Jon Åslund  &  Karl Wiberg

Theme:  Shakespeare

The Finnish developers wanted a way to encode key information in the style of play scripts. And what better way than Shakespearean insults!

Characters are used as programming variables, which are then manipulated through humourous dialogue.

Let’s dissect the offending snippet above:

◉ Hamlet is referring to Romeo as 'You'
◉ followed by 6 adjectives
◉ final word is categorised as +ve or -ve (latter in this case)
->  Romeo := 26 * (-1)
          := -64