Here are five programming languages which are very difficult to learn and could give seasoned coders headachesBrainfuckCOWINTERCALWhitespaceChef
We all started programming by writing codes in programming languages such as Java, C, C++ etc. Our peers and seniors used a little bit more difficult languages like Pascal, Fortran, COBOL etc. Compared to C++ or Java, you will wholeheartedly agree that Pascal and Fortran posed serious challenges to your brain and caused you to pull the hair off your head. However, compared to them some programming languages are so written that it takes more than pulling your hair off. Such programming languages that take difficulty to the God level and are known as esoteric programming languages. Most of these esoteric programming languages are created to to either test the boundaries of how far programming language design can go or as a joke. Most never make it beyond the developer’s system and you may never get to hear them. But here are the five that would push your brains to the limit.
Brainfuck
This language is a difficult as the name suggests. Brainfuck was invented by Urban Müller in 1993, in an attempt to make a language for which he could write the smallest possible compiler for the Amiga OS, version 2.0. Brainfuck operates on an array of memory cells, also referred to as the tape, each initially set to zero. There are only 8 commands in the language A simple ‘Hello world’ code looks like this
Reference
COW
Yes. Cow as in Cow with four legs. The COW programming language was designed with the bovine in mind. Given that cows have somewhat limited vocabulary skills, it seemed natural to incorporate only the words they know into the language. As a result, all instructions are some variation on “moo” which just so happens to be the only word they really understand. Any other word or symbol that isn’t an instruction is ignored entirely. So, spaces can be used or not. Newlines can be used or not. You get the idea. It makes commenting COW programs rather easy as long as you don’t use any words that have an instruction embedded in it.
Reference
INTERCAL
The Compiler Language With No Pronounceable Acronym, abbreviated INTERCAL. Expressions that look like line noise. Control constructs that will make you gasp, make you laugh, and possibly make you hurl. INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as “READ OUT”, “IGNORE”, “FORGET”, and modifiers such as “PLEASE”. This last keyword provides two reasons for the program’s rejection by the compiler: if “PLEASE” does not appear often enough, the program is considered insufficiently polite, and the error message says this; if too often, the program could be rejected as excessively polite.
Reference
Whitespace
It was released on 1 April 2003, most people thought it was an April Fool’s joke, but it wasn’t. As you can guess, in the Whitespace language, only spaces, tabs and linefeeds have meaning. The Whitespace interpreter ignores any non-whitespace characters. An interesting consequence of this property is that a Whitespace program can easily be contained within the whitespace characters of a program written in another language. Reference
Chef
Chef is a stack-based language where programs look like cooking recipes. According to the Chef Home Page, the design principles for Chef are:
Program recipes should not only generate valid output, but be easy to prepare and delicious. Recipes may appeal to cooks with different budgets. Recipes will be metric, but may use traditional cooking measures such as cups and tablespoons.
Hello world looks like this!
Reference1 and Reference2