The five most difficult programming languages โ€‹โ€‹in the world





All of us are only talking about C, C +, Java, Python and so on, but in the meantime, there are languages โ€‹โ€‹in nature that can be called not just complex, but inaccessible to most programmers. They are called esoteric programming languages โ€‹โ€‹(or ezolangi, from the short for esolang).



Esoteric languages โ€‹โ€‹do not serve to perform ordinary programming tasks. They are created for proof-of-concept or just for entertainment purposes.

Below is a list of five of the most daunting programming languages โ€‹โ€‹( translators note: if you have any more worthy contenders who are not mentioned by the author, we would be glad to hear about them in the comments). I tried to write a 'Hello World!' on each of them - it was fun.



Malbolge



This language was coined in 1998 by Ben Olmsted. It is considered to be the most difficult of all. They say that the author himself did not write a single program on his brainchild. The code that displays the words Hello World! Appeared two full years after Olmsted completed the language.



Here is a snippet of code to display the text Hello World! on Malbolge:



(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc


And this is what it gives out:





This and all the following code snippets were written by the author and launched at tio.run



INTERCAL



Jim Lyon and John Woods developed INTERCAL in 1972 as a parody of a variety of programming languages. It was originally called "a compiled language that has no pronounceable contractions."



INTERCAL has specially implemented features designed to make life difficult for a programmer. For example, it uses the PLEASE modifier and the like. The compiler can reject code if PLEASE occurs in it without proper regularity. Explanation? "Not polite enough." If the PLEASE modifier appears too often in the code, the compiler rejects the code as "too polite".



Here's a snippet of code to display the Hello World! on INTERCAL:



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


And this is what it gives out:





Brainfuck



Brainfuck was born in 1993 by Urban Mรผller, who intended it to be fun for other programmers. Already from the name it is clear that the language aims to make it as difficult as possible for those who work with it to understand what is happening.



The entire language consists of eight separate characters, which are used to implement any operation. The first compiler, which Mueller developed himself, was only 296 bytes long.



Here is a snippet of code to display the text Hello World! on Brainfuck:



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


And here's what it gives out:





COW



COW was created by Sean Geber in 2003. The meaning of the name of this language will become clear to you when you see the code. In terms of difficulty, COW is comparable to Brainfuck. In quantitative terms, there are four more commands in COW - a total of twelve for the whole language.



Here's a snippet of code to display the Hello World! on COW:



MoO MoO MoO MoO MoO MoO MoO MoO MOO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO
 MoO MoO moO MoO MoO MoO MoO mOo mOo mOo mOo mOo MOo moo moO moO moO moO Moo moO MOO mOo MoO moO MOo moo mOo MOo MOo MOo Moo MoO MoO 
 MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo MMM mOo mOo mOo MoO MoO MoO MoO Moo moO Moo MOO moO moO MOo mOo mOo MOo moo moO moO MoO 
 MoO MoO MoO MoO MoO MoO MoO Moo MMM MMM Moo MoO MoO MoO Moo MMM MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOo MoO Moo


And here's what it gives out:





Whitespace



Whitespace was published at Durham University, its authors are Chris Morris and Edwin Brady. It was presented to the general public on April 1st in 2003.



The basic idea is that spaces, tabs, and newlines are combined in the language to write programs. The interpreter ignores all other characters, treating them as comments to the code.



Here is a snippet of code to display the text Hello World! on Whitespace. In the excerpt below, each space, tab, and linefeed are preceded by S, T, and L, respectively:



S S S T	S S T	S S S L
T	L
S S S S S T	T	S S T	S T	L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S T	T	T	T	L
T	L
S S S S S T	S T	T	S S L
T	L
S S S S S T	S S S S S L
T	L
S S S S S T	T	T	S T	T	T	L
T	L
S S S S S T	T	S T	T	T	T	L
T	L
S S S S S T	T	T	S S T	S L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S S T	S S L
T	L
S S S S S T	S S S S T	L
T	L
S S L
L
L


And here's what it gives out:





There are many other esoteric languages โ€‹โ€‹similar to these. You can follow the link to familiarize yourself with them. On this site you can find compilers and interpreters for almost any language. Copy the code from any of the wikipedia pages and play with it to your heart's content.



All Articles