Top 5 Most Difficult Programming Languages In the World
Try to create “Hello World!” in each of them and you will have a lot of fun or cringe, for sure.
We can all more or less understand C, C ++, Java, Python, Kotlin, or Swift, but there are some programming languages that are difficult and incomprehensible to most software developers. These languages are called esoteric programming languages (or esolang). Esolang is not intended for routine software development. They are more of a proof of concept or a joke. Here is a list of the five most difficult programming languages. Try to create “Hello World!” in each of them and you will have a lot of fun or cringe.
Malbolge
Malbolge was created in 1998 by Ben Olmsted. This esolang is considered the most difficult programming language. The irony is, its founder has not written a single program using this language. The “hello world” code in Malbolg came about almost two years after Olmsted invented the language itself.
Here is the code for “Hello World!” in Malbolge:
(= <`# 9] ~ 6ZY32Vx / 4Rs + 0No- & Jk)" Fh} | Bcy? `= * Z] Kw% oG4UUS0 / @ - ejc (: '8dc
Here’s the result:
![how o program in Malbolge](https://softwarefocus.net/wp-content/uploads/2020/10/Screenshot-2020-10-29-at-16.03.55.png)
INTERCAL
Jim Lyon and Don Woods developed INTERCAL in 1972 as a parody of various programming languages. Its original name was “a programming language with an unpronounceable abbreviation.”
INTERCAL has many features that can frustrate the programmer. For example, it uses modifiers such as “PLEASE”. The compiler may reject the code if “PLEASE” is not used. He considers the program “not polite enough.” If the “PLEASE” modifier is used too many times, the compiler rejects the code, claiming it is “overly polite.”
Here is the code for “Hello World!” in 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
The result:
![how to program in INTERCAL](https://softwarefocus.net/wp-content/uploads/2020/10/Screenshot-2020-10-29-at-16.06.48.png)
Brainfuck
Brainfuck was developed by Urban Müller in 1993. This language was invented to entertain programmers. The name itself suggests that the language must be extremely difficult for any programmer to understand. The entire language consists of only eight different symbols and there are enough of them to implement any code. The original compiler developed by Müller used only 296 bytes.
Here is the code for “Hello World!” in Brainfuck:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++ ..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
The Result:
![how to program in brainfuck](https://softwarefocus.net/wp-content/uploads/2020/10/Screenshot-2020-10-29-at-16.09.39.png)
COW
COW was developed in 2003 by Sean Heber. As soon as you see the “Hello world” code, you will understand why the language was named “COW”. COW is similar to Brainfuck in terms of difficulty. Compared to Brainfuck, it has four more commands, that is, only 12 commands for the entire language.
Here is the code for “Hello World!” in 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
![how to program in COW](https://softwarefocus.net/wp-content/uploads/2020/10/Screenshot-2020-10-29-at-16.12.06.png)
Whitespace
Whitespace was invented at Durham University by Chris Morris and Edwin Brady. The language was released on April Fools’ Day in 2003. The entire language is dependent on spaces, tabs, and line feeds. The Whitespace interpreter ignores non-whitespace characters and treats them as code comments.
Here is a sample code to type “Hello World!” in Whitespace–each space, tab, or line feed character is preceded by a comment “S”, “T” or “L”, respectively.
![how to program in whitespace](https://softwarefocus.net/wp-content/uploads/2020/10/Screenshot-2020-10-29-at-16.15.44.png)
Check out more thought-provoking esolangs here.
Stay tuned with Software Focus!