Top 20 Strangest Programming Languages

In this article, we take a look at some truly bizarre programming languages. The first thought in your mind when you come across these programming languages would probably be “someone had way too much time on their hands.” Some of these languages actually were created to serve a specific purpose, while some of them were meant to challenge, frustrate and amuse the user. And yes, some of them were the result of some very smart persons having far too much free time.

So without further ado, here’s our list of the top 20 strangest programming languages:

20. reMorse

reMorse is a programming language designed to make the code look like Morse code.

reMorse consist of four instructions. The dash(-) and dasher(- followed by a space) instructions select the next and previous operation respectively, from a circular list of seven operations. Dot(.) and dotty(. followed by a space) do the operation and the opposite of the operation which is being selected, respectively.

reMorse2, reMorse2.-, and reMorse4ever are the dialects of reMorse, among which only reMorse2.- is claimed as Turing-complete.

Morse code can be a pain in the ass without an automatic translator, and you know for a fact that reMorse would be a pain to code in, because the author himself didn’t finish the mandatory “Hello World” program:

1
2
3
4
5
6
7
8
9
- - - ..- ...-.---.;newline
- - - .-. - ..-.- ...-. ---.;!
- - - ...- . . -.---.;d
----. . . -.---.;l
----. . -...---.;r
----. -...---.;o
----...-.- ..-. ---.;W
//author didn't feel like doing this part
-..............;output all characters

19. Omgrofl

Oh my god rolling on the floor laughing – someone thought it would be a good idea to create a language whose commands are all Internet acronyms like lol, omg, brb, wtf, lmao, roflmao etc. And thus, Omgrofl was born. A typical Omgrofl program would look like a conversation between pre-teens overflowing with swag. All variables are of the form lol, lool, loool etc. Here’s what a “Hello World” program looks like in Omgrofl:

1
2
3
4
5
6
7
8
9
loool iz lol
looooool iz lool
rtfm
 wtf looooool iz liek 0
  tldr
 brb
 lmao loool
 roflmao looooool
brb

18. ArnoldC

Like Arnold Schwarzenegger movies? If so, this is the programming language for you. ArnoldC is made completely out of one-liners from Schwarzenegger movie classics such as Terminator, Predator and Total Recall.

It was created by Lauri Hartikka, who swapped out standard commands with their equivalent Arnold one-liners. Some examples are:

If BECAUSE I'M GOING TO SAY PLEASE

Else BULLSHIT

EndIf YOU HAVE NO RESPECT FOR LOGIC

While STICK AROUND

EndWhile CHILL

Here’s a “Hello World” program in ArnoldC:

IT'S SHOWTIME
TALK TO THE HAND "hello world"
YOU HAVE BEEN TERMINATED

17. Asciidots

For the uninitiated, computer code might look like an ugly mess of something you probably don’t want to be a part of. AsciiDots strives to be different. In fact, it looks like art – ASCII art to be precise. In this language, dots, represented by periods '.' travel down ascii art paths and undergo operations.

Here’s a few sample Asciidots programs:

Asciidots program - top 20 strangest programming languages Asciidots program - top 20 strangest programming languages Asciidots program - top 20 strangest programming languages

16. GolfScript

GolfScript is a stack oriented esoteric programming language aimed at solving problems (holes) in as few keystrokes as possible. It also aims to be simple and easy to write.

Short code is achieved by using single symbols to represent high level operations (such as map, join, array size, etc). Being stack based allows for functions and other manipulations to work without the need for explicit variables. However variables still exist and are useful for more complicated stack manipulations.

15. JSFuck

Developed by Martin Kleppe, JSFuck is an esoteric programming style of JavaScript. where code is written using a very limited set of characters: (,), [, ], + and !.The challenge in JSFuck lies in recreating the full set of JavaScript functions using only these six characters, which is made possible by two properties of JavaScript:

  1. It is a weakly typed programming language
  2. It allows the evaluation of any expression as any type.

Since it is a subset of JavaScript, it can run on a JavaScript engine. JSFuck was originally developed as part of an online contest aimed at improving security bypass techniques. I have to say that worked pretty well since JSFuck became famous by allowing a cross-site scripting attack on eBay.

The characters with the shortest JSFuck expansions are listed below. Other characters can be expressed as well but will generate considerably longer code.

Character JSFuck
+ (+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]
. (+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]
0 +[]
1 +!![] or +!+[]
2 !![]+!![] or !+[]+!+[]
3 !![]+!![]+!![] or !+[]+!+[]+!+[]
4 !![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]
5 !![]+!![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]+!+[]
6 !![]+!![]+!![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]+!+[]+!+[]
7 !![]+!![]+!![]+!![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
8 !![]+!![]+!![]+!![]+!![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
9 !![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![] or !+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
a (![]+[])[+!+[]]
d ([][[]]+[])[!+[]+!+[]]
e (!![]+[])[!+[]+!+[]+!+[]]
f (![]+[])[+[]]
i ([![]]+[][[]])[+!+[]+[+[]]]
I (+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+(+!+[])+(+[])+(+[])+(+[]))+[])[+[]]
l (![]+[])[!+[]+!+[]]
N (+[![]]+[])[+[]]
n ([][[]]+[])[+!+[]]
r (!+[]+[])[+!+[]]
s (![]+[])[!+[]+!+[]+!+[]]
t (!!+[]+[])[+[]]
u ([][[]]+[])[+[]]
y (+[![]]+[+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+(+!+[])+(+[])+(+[])+(+[]))])[+!+[]+[+[]]]

14. Velato

Velato is a programming language, created by Daniel Temkin in 2009, which uses MIDI files as source code: the pattern of notes determines commands. Velato offers an unusual challenge to programmer-musicians: to compose a musical piece that, in addition to expressing their aims musically, fills the constraints necessary to compile to a working Velato program. Each song has a secret message: the program it determines when compiled as Velato.

The “Hello World!” example given below is what the source code looks like:

Velato source code - The Top 20 strangest Programming Languages

13. Grass

Grass is a functional programming language that only uses the characters “W”, “w”, and “v”. Thus, programs in Grass are said to look like ASCII art of grass. Grass has the formal specification which is based on untyped lambda calculus and the SECD machine.

Here’s a program that prints ‘W’ in Grass:
wWWwwww

12. l33t

You’ve probably come across Leet speak some time on the Internet. Well, thanks to Stephen McGeal and Alex Mole, there’s a programming language based on it. Even on the official site of l33t, it is described as an “evil programming language”.

l33t was designed to be as confusing as possible. It is Turing-complete and has the possibility for self-modifying code. Software written in the language can make network connections and may therefore be used to write malware. And if you write wrong code, the compiler can and will call you a n00b or sUxX0r.

Here’s a sample “Hello world” program in l33t written by Stephen McGeal himself.

// "Hello World" by Stephen McGreal.
// Note that the views expressed in this source code do not necessarily coincide with those of the author :o)
Gr34t l33tN3$$?
M3h...
iT 41n't s0 7rIckY.
l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!
Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
I'M teh fr4GM4stEr aN I'lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!!! L0L0L0L!
t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$
l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$...
s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y'r3 ju$t n0rMal lEE7 5pEEk but th3y're 5ecRetLy c0dE!!!!
n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0
bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE
y0d4!!! hE i5 teh u8ER!!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD!!!" u ju5t cAn'T gu3s5.
tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!
5uxX0r5!!!L0L0L0L0L!!!!!!!

11. Chef

Chef by David Morgan-Mar is a stack-oriented programming language designed to make programs look like cooking recipes. Programs consist of a title, a list of variables and their data values and a list of stack manipulation instructions. The basic design principles of the language were

  • the code should not only generate valid output but the output must be easy to prepare and delicious
  • recipes must appeal to cooks with different budgets
  • the recipes have to be metric

In other words, the recipes must work as code, AND can be prepared and eaten. The source code for the “Hello World” program is given below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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.

Next Page

Leave a Reply