Daniel Temkin | Forty-Four Esolangs

5 min read Original article ↗

The first artist's monograph of programming languages, out September 23, 2025. More at MIT Press.

"Every new spread in the book makes a reader feel like they're discovering new territory with a worthy explorer who's there for the joy of it."
- Douglas Coupland, artist; author of Generation X and Microserfs

Upcoming speaking dates / exhibitions

Recent

  • Paris, France :: Jan 28, 2026 (Wed) @ 8am - 6:30pm
    Software Heritage Symposium @ UNESCO Headquarters, Room XI :: Rivulet (Language 40) is featured in this all-source code exhibition; there will be a walking tour in the morning
  • Brooklyn, NY :: Jan 15, 2026 (Thu) @ 7pm
    WordHack @ Wonderville :: 1186 Broadway (Brooklyn) and on twitch.
  • New York, NY :: Dec 02, 2025 (Tue) @ 6pm
    P&T Knitwear :: 180 Orchard Street

More

Press / News

Some projects from the book

An expanding list of implementations and documentation of realized languages.

Valence

Valence

2024

A polysemantic language for code with multitudes of meaning.

Valence is a programming language written in eight Ancient Greek measuring and numeric signs. Each is a homophone with multiple meanings. Context determines the meaning of the symbol; if multiple readings remain, every interpretation plays out in parallel.


Velato

2009

A language where one writes code using music; the program is a MIDI file read by the compiler in terms of pitch intervals (the first language to function this way). The coder creates a song that also functions as a program. Designed with the songwriter in mind, allowing flexibility in how the music is constructed.


Time Out

2015

A language where any meaningful action takes place between the lines of code. Every command is a time-out, an instruction to sleep. This is the only thing accepted as a valid command. The other functionality of the language occurs based on how much time has passed. This means that waiting the correct amount of time might fire a print command, or adding a value to the stack. As a web-based language, one has to keep the program running in the active tab and not click away, or risk the wrong amount of time passing, causing the program to fail. Only rapt attention by the programmer (or an inactive computer) will let the program run as intended.



Language 3

A truly binary language, written with two signs selected for their complexity and visual similarity


2016

A language whose programs make up the entirety of human texts, apart from valid C programs. Includes empty files, jpegs, incoherent rambling texts, and C programs with syntax errors.


undefined

2020

A valueless dialect of JavaScript that echews mention of number, string, or bool. All built on the absense of value. Examples:

            (undefined == undefined) // true
            (undefined == undefined + undefined) // false
            (!undefined) // true
            (!!undefined) // false
            (+undefined) // NaN
            (undefined+[]) // "undefined"
            (+!+undefined) // 1
            (+!+undefined-!+undefined) // 0
            (!undefined + !+undefined) // 2
            (((undefined == undefined)+[])[(undefined == undefined + undefined) + (undefined == undefined + undefined)]) // "t"
            ((undefined+[])[+!+undefined-!+undefined]) // "u"
        

This implies a null language and perhaps a NaN as well.

See also: the brilliant JSFuck.