Way back in 2003, I created Homespring, an absurdist esoteric programming language that has since taken on something of a life of its own. It attracted a bit of attention on the Internet in May, 2018, so I figured I would put up a new page about it.
A Homespring program takes the form of a network of rivers; the data are represented by salmon that swim upstream to spawn and then back out to the ocean. To implement algorithms, the programmer adorns the landscape with various features such as rapids and hatcheries that alter the behavior of the fish. The language is designed so that the programs resemble grammatically correct English poetry, although the sentence structure has very little to do with what is actually going on in the program.
My intention was to make the language (1) as weird as possible and (2) as difficult to use as possible. I called it “Metaphor Oriented Programming,” meaning that the language is based on a single, nonsensical metaphor (fish swimming in a river) taken to an absurd extreme.
As an example, here is a simple program that prints “Hello World!” and then terminates:
Universe of bear hatchery says Hello. World!. It powers the marshy things; the power of the snowmelt overrides.
The easiest way to run a Homespring program is with the online version from Try It Online.
Here is a mirror of the original web site from 2003. This is the original package, including documentation and an interpreter written in the Scheme programming language. To run this version, you will need to install Guile.
Several other people have created Homespring-related things:
- Cal Henderson’s Perl implementation
- Cal’s JavaScript version
- Joe Neeman’s OCaml version
- Jason Grossman’s page about the language
- programs and tools created by Benito van der Zander
- Quin Kennedy’s node.js version
The initial announcement and discussion on the esoteric programming languages mailing list is archived here.
If there is something else you want me to link here, let me know!