An esoteric programming language, usually shortened to esolang, is, in the words of the community’s own reference, “a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.” Unlike mainstream languages, which are built to help people get real work done, an esolang exists to make a point, to explore an idea, or simply to be funny. The community that documents and creates them maintains its own wiki at esolangs.org, which serves as the primary catalog of the field.
The esolang reference groups these languages by their design goals, and the categories themselves tell the story. Some chase minimalism, stripping a language down to a handful of instructions, as Brainfuck and the one-instruction set computers do. Others explore genuinely new programming concepts, like the two-dimensional Befunge or the lazy functional Unlambda. Some aim for sheer weirdness or difficulty, like INTERCAL and Malbolge. Others are themed around something outside computing, such as the Shakespeare language whose programs read like plays, or Chef, whose programs look like recipes. A whole category exists purely as jokes.
The tradition is usually traced back to INTERCAL, created in 1972 by Donald R. Woods and James M. Lyon with the stated aim of having “no similarities whatsoever to any existing programming languages.” Its parody features, including a politeness requirement that programs not be too rude or too polite to the compiler, mark it as the first language designed deliberately to be esoteric rather than useful. The modern wave began in 1993 with Brainfuck and Befunge, which remain among the most widely known esolangs.
Esoteric languages overlap with neighboring corners of programming culture. Their minimalist members are favorite vehicles for proving Turing completeness, since showing that a tiny language can compute anything is a satisfying result. Their terse members feed directly into code golf, where golfing languages compete to express programs in the fewest bytes. And the whole enterprise shares the spirit of obfuscated code: a delight in pushing the very idea of a programming language to absurd, instructive, and entertaining extremes.