Taxi: The Programming Language
Esoteric programming languages are fun. They present the process of computation in wholly unconventional ways that, to programmer and non-programmer alike, seems impossible. There are some – like INTERCAL and Brainfuck – that are designed to be as perverse as possible. While that might be fun, it’s more impressive when a language manages to be both strange and unconventional.
The best esoteric example I know of is the Taxi Programming Language, where a program consists of a series of instructions to a taxi driver.
The Taxi programming language consists of instructions to you, the taxi driver. These instructions consist of directions to places to pickup or drop off passengers, where passengers are waiting to be picked up, and what to do if no one comes to the curb. Your car starts out with a full 20 gallon tank of gas and an empty cash box. The car gets 18 miles per gallon which means you cannot just drive around aimlessly all day or you’ll eventually run out of gas and with an empty cash box, you won’t be able to afford any more fuel. The solution to this is to pickup and drop off passengers as you move around town. They will pay you for your miles once they get where they were going and then you can pay for gas from a gas station to keep the process rolling. The fare paid by the passengers is a flat 0.07 credits per mile. Since Townsburg employs a state of the art electronic money system and your cab comes loaded with a super-accurate digital odometer, fractional credits are common and the passenger pays for exactly the distance they traveled.
Operations take place at destinations throughout Townsburg. Drop two or three passengers off at Addition Alley, and their numerical values are added together with the resulting value becoming a passenger waiting at the curb for pickup.