6 of the Weirdest, Most Obscure Programming Languages
Originally published on 27 Mar 2019
Last updated on 02 Sep 2021
So, I recently dove into the world of esolang and weirdlang programming languages, where the creators try to take the idea of a programming language to the limit with over the top minimalism or weirdness. Here are 6 programming languages I thought were interesting – and some of the weirdest or most obscure!
Jelly
Starting with a somewhat useful programming language, Jelly is specifically designed for brevity, more specifically designed for ‘Code-golf’. Where programmers try to implement challenges in a programming language of their choice and the winner is usually the one with the fewest number of bytes or smallest number of characters. Jelly is a tactic programming language – also called a point free style language. The functions in Jelly are defined as ‘Links’ which are formed into ‘Chains’, the chains are then evaluated. I won’t go into too much detail but you can read about it on the Github of the creator of Jelly (https://github.com/DennisMitchell/jellylanguage/wiki/Tutorial).
An example Jelly program that outputs an alphabet song, done in 39 bytes! By user Jonathan Allan on the Code Golf Stack Exchange:
;“ẉbẊWS»,⁸K;;”t
“¤ṁp}œḊṄæ®’b6ị“ʠȷ»ØAç"Y
Which outputs;
A is for Ant
B is for Bit
C is for Cot
…
X is for Xat
Y is for Yet
Z is for Zit
Chef
Now for something completely different, Chef is a stack-based language where the programs are designed to look like cooking recipes, which the creator hoped to also be delicious. However, most of the time that’s not the case, for example the creator’s ‘Hello World souffle’ where the ‘souffle’ requires 101 eggs, 32 zucchinis and 33 potatoes to serve 1 person – but it is funny to read. Mike Worth wrote a much tastier program, that you can find here (https://esolangs.org/wiki/chef) below is the program by David Morgan-Mar, which is much shorter:
Hello World Souffle.
This recipe prints the immortal words "Hello world!", in a basically brute force way. It also makes a lot of food for one person.
Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes
Method.
Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish.
Serves 1.
LOLCODE
LOLCODE is a throwback to 2006. Although the memes from that era are now sadly dead, LOLCODE reminds us of the time where lolcat’s were the most hilarious thing, and LOLCODE provides a dark dystopian mirror to what life would look like if lolcat overlords took over the world – maybe if they had opposable thumbs. While the syntax is funny, there is a useable language behind it and its pretty readable, but I doubt a client would find it funny.
Here is a for loop that prints 0 to 9 in 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
COW
Cow is a Turing-complete and cow-friendly language, surprisingly not popular with vegetarians, and is a variation of another esoteric language of a much vulgar name. But the COW programming language comes with 4 extra instructions, all consisting of variations of Moo – MoO mOO MoO – with MMM, OOO, oom and OOM being the exceptions.
If you’re not yet amoosed, (see what I did there?) here is a sample code of a COW program that generates the Fibonacci sequence:
MoO moO MoO mOo MOO OOM MMM moO moO
MMM mOo mOo moO MMM mOo MMM moO moO
MOO MOo mOo MoO moO moo mOo mOo moo
Malbolge
Named after the eighth circle of hell from Dante’s Inferno and designed to be near impossible and inconvenient to program in, Malbolge features a ‘crazy operator’ which doesn’t make sense, base three arithmetic, and self-altering code. Instructions change their function depending on their location in memory – it is closer to cryptography than programming. The author himself didn’t write a program in his own language, due to how difficult it is. Only 2 years after the arrival of Malbolge, a program was written, although not by a Human - instead it was generated by a beam search algorithm designed by Andrew Cooke.
Here is a basic ‘Hello World’ program:
(=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm
Whitespace
Whitespace, which was released on April fools, and unlike normal programming languages, anything that isn’t a whitespace character is ignored, only space, tab and linefeeds have any meaning.
This means that any program that doesn’t depend on white space for validity (unlike Python) can have a Whitespace program within it, making it a polyglot.
A ‘Hello world program is written below’:
Just kidding, here is a ‘Hello world’ program written in Whitespace with syntax highlighting (from Wikipedia) where blue is a tab and red is a space:
If you want to find more esolangs or weirdlangs or learn more about the ones listed, head over to https://esolangs.org/wiki/Main_Page which is a great source of esolangs!