Esoteric Programming Languages

An esoteric language is a programming language that has been created for fun, rather than for practical use, and which is designed with some unusual objective in mind.  Esoteric languages are also often known as obfuscated languages, since the unusuality nearly always results in the language being difficult to write and/or read.

Some websites inaccurately define the term "esoteric language" along the lines of "a language designed to be unusable".  In fact, being difficult to work with usually isn't the actual intention of the language designer.  To take a few examples:

Though as an exception, Malbolge really was designed to be difficult to program in, and there are also various joke languages.

A-Z of languages

My own collection of languages:

Also at this site is an almost-functional Unlambda to D compiler.