While there is no hard and fast definition, an esoteric programming language, or "esolang", is a programming language intended to entertain, confuse, and otherwise blow your puny little mind. If that sometimes means butchering the definition of "programming language"... then so be it.

Esolangs are toy languages, if by "toy" you mean something like "Mainway product".

Esolangs are joke languages, if by "joke" you mean something like "Beethoven scherzo."

Esolangs are research languages, if by "research" you mean something like "Fear and Loathing in Las Vegas."

A comprehensive repository of information on esolangs can be found at the Esolang Wiki.


It is somewhat interesting to see how the Open Source Definition views esolangs. Programs written in esolangs tend to be "deliberately obfuscated", and thus "not allowed." On the other hand, this is also presumably "the preferred form in which a programmer would modify the program." So it's debatable whether these programs can be OSI Certified or not. (In practice, though, almost all esolang implementations, and programs written in esolangs, are freely redistributable if not formally Open-source or Public Domain.)