Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question

migrated from 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 '13 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.

up vote 5 down vote accepted

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.

share|improve this answer
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 '13 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.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.