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?
migrated from stackoverflow.com Mar 1 '11 at 8:11
This question came from our site for professional and enthusiast programmers.
closed as not constructive by maple_shaft♦ Feb 1 at 15:53
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.
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.
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.