Factsheet
TIL Malbolge, a programming language named after the eighth circle of hell in Dante's Inferno, was specifically designed to be almost impossible to use, via base-three arithmetic and self-altering code. It took two years for the first Malbolge program to appear.
Malbolge (programming language)
Videos
Esoteric Programming languages, also known as Turing Tarpits due to the difficulty of writing anything useful with them, are mostly built for fun or to see how far a particular idea can be taken. Whitespace for instance, privileges a lexical item typically ignored in most languages. Shakespeare on the other hand is designed to mimic Shakespearean Drama. Brainfuck actually has a practical purpose. It is designed to employ the smallest possible compiler at under 200 Bytes.
There is a second category of the actual joke languages such as Malebolge and INTERCAL, neither of which is designed to be practical in any way whatsoever and have features that actively make them harder to use.
To quote brainf*ck's entry in wikipedia:
Urban Müller created brainfuck in 1993 with the intention of designing a language which could be implemented with the smallest possible compiler,[2] inspired by the 1024-byte compiler for the FALSE programming language.
These languages are created by the creator as some sort of exercise or a way to try something new or even just as a joke. It is a fun way for a programmer to keep their skills sharp and get internet famous.