Esoteric programming language

From ArticleWorld


An esoteric programming language is a language designed and written for fun, twisting some typical features. Such languages are not meant to be used in a production environment. In fact, they are designed to be as strange and seemingly non-sense as possible. Many consider them to be the computer equivalent of the nonsense verse in literature.

The first esoteric programming language design was INTERCAL, which was designed by James Lyons and Don Woods. The other canonical example is brainf*ck, designed by Urban Muller in 1992.

Categories

There are many esoteric programming languages, but many of them can be integrated into some categories.

  • Turing tarpits, languages that are, technically speaking, Turing-complete, but contain a small number of instructions. For example, Ook! contains only 8 commands, while OISC contains just one (typically subtract and branch if positive).
  • Non-deterministic languages are languages in which the next state of the program is impossible to predict based on the current output. In a non-deterministic languages, an instruction has a certain probability (usually less than 100%) to do exactly what it is expected to do. These languages are considered to be the most difficult of them all, since a "Hello, World!" program that actually prints "Hello, World!" each time it is ran is very hard to achieve.
  • Despotic languages are Turing tarpit languages where commands are used to select a certain operation from a finite range of operations. This system is called stateful encoding

Community

As strange as it may seem, a whole community has developed in time, gathering several esoteric programming language designers and coders. Turing completeness is often tackled in this community, as the Turing completeness or non-completeness of a language is not immediately obvious.