Wikipedia is more generous in its description:
An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.
Esolangs wiki: With lovely languages like:
- Brainfuck, the classic esolang.
- Emmental is a self-modifying language. It is defined by a meta-circular interpreter (an Emmental interpreter described in Emmental.) The meta-circular interpreter provides an operation which modifies operations of the meta-circular interpreter. Emmental is a stack-based language, but it also has a queue.
- FIFTH: for all those functional alcoholics out there.
- Funciton is a two-dimensional, minimalistic, declarative programming language invented in 2011. (ASCII call-flow graphs FTW!)
- Genesis: Genesis is an interpreted, procedural, and Turing-complete Paleo-Hebrew programming language. Diacritical signs are forgone for simplification, though maybe Nikud can be used in prospect as a means for more reserved keywords. https://github.com/elonlit/Genesis
- I use Arch Linux, btw: a Brainfuck clone
- LifeScript: Typical LifeScript is basically a text document, looking like source code, which describes the actual activity of the editor.
- SARTRE: an extremely unstructured language. Statements in SARTRE have no purpose; they just are there. Thus, SARTRE programs are left to define their own functions. SARTRE programmers tend to be boring and depressed and are no fun at parties.
- Thue is an esoteric programming language based around the idea of a "semi-Thue system": a system which specifies strings that can be rewritten to certain other strings; a program is simply a list of search strings, and possible replacements for them. As a nondeterministic language, a program has the potential to halt if there is some way to reach an end state via applying replacements, even if rules such as "always apply the first replacement" would lead to an infinite loop. ...
... and many, many others. The Esolangs wiki has broken them out into a number of different categories, which is interesting even for non-esoteric languages.
Esoteric Programming Languages Webring (which seems broken)
Some random links I've found:
Some ideas I have for esoteric languages:
- A language built around the synonyms and antonyms of "other", so we can call it that "Other" programming language.
- What about a D&D/TTRPG programming language?
- Language built around the concepts of collectible card games (Magic, Pokemon, Yu-Gi-Oh); I really like the YuGiOh idea of "But I have a trap card!" that deals with exceptions. Maybe cards are blocks? Oh, I kinda want to see a program be a deck, and all of the blocks are cards that interrupt and form a stack and oh my Jesus this could work.
Last modified 13 July 2023