Esoteric languages are intriguing and can make you go 'Hmmm...', but what can we really learn from them? Is there a benefit to spending more than 5 minutes trying to write an application in an esoteric language? Have you tried one, and if so, what did you learn?
Some esoteric languages are important as practical demonstrations of the fundamental concepts. Unlambda allows to play directly with the SKI-calculus, Brainfuck clearly shows the complexity of the Turing machine, Malbolge is interesting in terms of reasoning about the Turing-completeness, etc.
This was deleted because the question originally came from SO, and then was closed, meaning that the migration was rejected. Your answer went back to the original SO question which has been long deleted, which is why this answer was deleted. Did I lose you :)– maple_shaft ♦Feb 1, 2013 at 18:08
Turing Tarpits teach us how much of the languages we use in everyday programming is syntactical sugar. If you look at one-instruction assembly languages (e.g. subifzjmp a b c which subtracts the contents of register a from register b and branches to c if the result is zero) or jot (any binary tree of unlabelled nodes is effectively a valid program in a certain combinator calculus) you realise how complexity emerges from virtually nothing.
Then you go back to C++, Java, Python, or what-have-you, and are grateful for having three or four styles of loop and the ability to break the problem down into separately testable components.