Esoteric Languages — Tier 3 Index
Esoteric Languages — Tier 3 Index
- Type: Tier 3 family index
- Family: Esoteric / intentionally-difficult / joke languages
- Languages catalogued: 22
- Last updated: 2026-05-07
Family overview
“Esolangs” are programming languages designed for purposes other than practical use. They explore four overlapping motivations:
- Minimalism / Turing tarpits — proving you can compute anything with absurdly few primitives. Brainfuck (8 commands), Unlambda (combinatory logic, 7 ops), FALSE (a few characters), Iota/Jot (one combinator).
- Hostile-by-design — INTERCAL and Malbolge are meant to be unpleasant. INTERCAL was the first; Malbolge was specifically engineered to be impossible to program in (the first valid program took two years and was generated by search).
- Themed parodies — programs that look like something else: Shakespearean plays (Shakespeare), recipes (Chef), lolcat memes (LOLCODE), Schwarzenegger movie quotes (ArnoldC), orangutan grunts (Ook!).
- Code golf — designed for shortest programs in competitions. GolfScript (2007) opened this branch; Jelly, 05AB1E, Pyth, Vyxal, and Husk are tournament-grade entrants on Code Golf Stack Exchange.
The community center of gravity is esolangs.org, the wiki maintained since 2005, plus codegolf.stackexchange.com and the long-running Code Golf “Round” community. The languages aren’t useless — Brainfuck is genuinely good for teaching tape automata, Befunge introduces 2D source as a concept, and code-golf languages drive serious work on tacit programming and array combinators. But none of them are tools you reach for with intent to ship.
In our deep library
No deep notes exist for any language in this family. Cross-cutting context, when relevant, lives in:
- concatenative-languages (FALSE, GolfScript, Jelly all owe debts to Forth)
- turing-completeness (the tarpits)
Tier 3 — the family
| Language | First release | Status 2026 | Niche | Why it matters | Source URL |
|---|---|---|---|---|---|
| INTERCAL | 1972 | Historical, museum-active | First esolang | Don Woods and James M. Lyon’s parody; the COME FROM statement, mandatory politeness (“PLEASE”); the whole genre starts here | https://www.muppetlabs.com/~breadbox/intercal/ |
| Brainfuck | 1993 | The canonical esolang | Minimalist Turing tarpit | Eight commands > < + - . , [ ] operating on a tape; Urban Müller wrote a 240-byte compiler; the cultural reference point all other esolangs cite | https://esolangs.org/wiki/Brainfuck |
| Befunge | 1993 | Active variants (Funge-98) | 2D source grid | Chris Pressey; instruction pointer moves through a grid in any of four directions via > < ^ v; pioneered “the source code is a 2D plane” | https://esolangs.org/wiki/Befunge |
| FALSE | 1993 | Historical | Concatenative ancestor | Wouter van Oortmerssen’s compact stack lang; ~1KB compiler; directly inspired Befunge and ultimately GolfScript-class languages | https://esolangs.org/wiki/FALSE |
| Malbolge | 1998 | Notoriously hostile | Designed to be impossible | Ben Olmstead built it deliberately to defeat human programmers; first non-trivial program was generated by search ~2000 (took two years) | https://esolangs.org/wiki/Malbolge |
| Whirl | 2004 | Niche | Circular instruction pointer | Two rotating “wheels” of operations; programming is choreographing rotations; only 0 and 1 are syntax | https://esolangs.org/wiki/Whirl |
| Whitespace | 2003 | Niche | Spaces, tabs, newlines only | Edwin Brady and Chris Morris; programs are invisible inside other source code; great for steganography demos | https://esolangs.org/wiki/Whitespace |
| Piet | 2003 | Active community | Pixels are program | David Morgan-Mar; programs are bitmaps named after Piet Mondrian; control flow follows color transitions; produces genuinely beautiful “source code” | https://www.dangermouse.net/esoteric/piet.html |
| Shakespeare | 2001 | Active | Plays as programs | Karl Wiberg & Jon Åslund; programs read as Shakespearean drama with characters as variables and dialogue as statements | https://shakespearelang.com/ |
| Chef | 2002 | Active | Recipes as programs | David Morgan-Mar again; programs are valid recipes with ingredients as variables and steps as instructions; “Hello World” is a soufflé | https://www.dangermouse.net/esoteric/chef.html |
| LOLCODE | 2007 | Joke-active | Lolcat meme syntax | HAI, CAN HAS, VISIBLE, KTHXBYE; surprisingly complete; multiple working interpreters and compilers exist | https://lolcode.org/ |
| ArnoldC | 2010 | Joke-active | Schwarzenegger one-liners | IT'S SHOWTIME, TALK TO THE HAND, YOU HAVE BEEN TERMINATED; runs on the JVM | https://github.com/lhartikk/ArnoldC |
| Ook! | 2002 | Stable joke | Brainfuck for orangutans | Bijection of Brainfuck where Ook. Ook?, Ook? Ook., etc. replace each command; named for Terry Pratchett’s Librarian | https://www.dangermouse.net/esoteric/ook.html |
| Unlambda | 1999 | Niche, beloved | Combinatory logic | David Madore; pure SKI calculus + i and c (call/cc); no variables, no syntax beyond function application; minimalist gold | http://www.madore.org/~david/programs/unlambda/ |
| Velato | 2009 | Curiosity | MIDI as program source | Tom Murphy VII; programs are MIDI files; intervals between notes encode operations; you can listen to your code | http://tom7.org/velato/ |
| Folders | 2015 | Curiosity | Windows folders as syntax | Daniel Temkin; the program is a tree of empty folders; nested folder names encode operations; the file system is the source | https://danieltemkin.com/Esolangs/Folders/ |
| GolfScript | 2007 | Active in code-golf | Code-golf stack lang | Darren Smith; concatenative, every character is an operator; the first language explicitly designed to win code-golf competitions | http://www.golfscript.com/golfscript/ |
| Jelly | 2015 | Dominant on codegolf.SE | APL-flavored code-golf | Dennis Mitchell; tacit, array-oriented, single-byte-per-token using a custom encoding; routinely wins shortest-solution challenges | https://github.com/DennisMitchell/jellylanguage |
| 05AB1E | 2016 | Active in code-golf | Code-golf (Belgian) | Adriaan Lemmens; named “OSABIE” in leet; stack-based; large built-in vocabulary tuned to common golf challenges | https://github.com/Adriandmen/05AB1E |
| Pyth | 2014 | Active in code-golf | Python-flavored code-golf | Isaac Cohen; transpiles to Python; one-byte-per-Python-feature compression; gateway language from Python into golfing | https://github.com/isaacg1/pyth |
| Vyxal | 2021 | Active, growing | Modern code-golf | Designed by the codegolf.SE community to consolidate lessons from Jelly, 05AB1E, Pyth; Unicode-friendly, tacit, function-rich | https://github.com/Vyxal/Vyxal |
| Husk | 2018 | Niche golf entrant | Haskell-flavored code-golf | Type-inferred, polymorphic, lazy code-golf; functional answer to Jelly’s array-tacit answer | https://github.com/barbuz/Husk |
Notable threads
- The Befunge family. Befunge-93 (10x80 grid) was extended into Funge-98 (arbitrary dimensions, multi-threaded), Trefunge (3D), and Unefunge (1D). Chris Pressey’s specifications spawned a sub-genre of “fungeoid” languages.
- Brainfuck is the lingua franca of esolang humor. Hundreds of derivatives exist — Ook!, Spoon, Pikalang, Brainfork (with
Y), Brainfuck++; many esolangs define themselves as “Brainfuck but…” because Brainfuck is the fastest way to communicate “minimal Turing-complete tape language.” - Malbolge is solved but unsolved. Andrew Cooke’s first valid program was found by genetic search in 2000; richer programs (loops, input/output beyond a fixed string) require Malbolge Unshackled, a slightly less hostile variant. Writing Malbolge by hand remains essentially impossible.
- Code-golf is the only branch with serious recent work. Jelly, Vyxal, and Husk have been research vehicles for tacit programming and concise array combinators. Some idioms first popularized in Jelly have leaked back into APL/J/K conversations.
- Esolangs as art. Piet (Mondrian paintings), Velato (MIDI music), Folders (file-system trees), and Whitespace (steganography) treat the medium of source code as the artwork. They’re the closest the family gets to gallery work.
- The wiki at esolangs.org documents 1500+ languages as of 2026, of which fewer than 50 have a working implementation. Most are paper designs by hobbyists; the ones in this index are the implemented, culturally-important ones.
Citations
- Esolang Wiki, “Main Page”, https://esolangs.org/
- Don Woods & James M. Lyon, “INTERCAL Reference Manual” (1972, reissued 1990), https://www.muppetlabs.com/~breadbox/intercal/
- Urban Müller, “Brainfuck”, original distribution archive (1993)
- Chris Pressey, “The Befunge-93 Programming Language”, https://catseye.tc/view/Befunge-93
- Wouter van Oortmerssen, “FALSE Programming Language” (1993)
- Ben Olmstead, “Malbolge: A Programming Language From Hell” (1998), https://esolangs.org/wiki/Malbolge
- Edwin Brady & Chris Morris, “Whitespace” (2003), https://web.archive.org/web/20150523181043/http://compsoc.dur.ac.uk/whitespace/
- David Morgan-Mar, “Piet, Chef, and Ook!” pages, https://www.dangermouse.net/esoteric/
- Karl Wiberg & Jon Åslund, “The Shakespeare Programming Language”, https://shakespearelang.com/
- “LOLCODE Specification”, https://github.com/justinmeza/lolcode-spec
- Lauri Hartikka, “ArnoldC”, https://github.com/lhartikk/ArnoldC
- David Madore, “The Unlambda Programming Language”, http://www.madore.org/~david/programs/unlambda/
- Tom Murphy VII, “Velato”, http://tom7.org/velato/
- Daniel Temkin, “Folders — A Language Where The Code Is Folders”, https://danieltemkin.com/Esolangs/Folders/
- Darren Smith, “GolfScript”, http://www.golfscript.com/golfscript/
- Dennis Mitchell, “Jelly Language”, https://github.com/DennisMitchell/jellylanguage
- Adriaan Lemmens, “05AB1E”, https://github.com/Adriandmen/05AB1E
- Isaac Cohen, “Pyth”, https://github.com/isaacg1/pyth
- Vyxal Contributors, “Vyxal Documentation”, https://vyxal.github.io/
- Code Golf Stack Exchange, https://codegolf.stackexchange.com/