Lisp
john-mccarthy designed Lisp at MIT in 1958 as a practical notation for the mathematics of AI work
on the IBM 704, and its two primitive list operations, car and cdr, are still named after that
machine’s address and decrement registers. Steve Russell then did the thing the article makes most of:
he hand-compiled McCarthy’s theoretical eval into machine code, which produced an interpreter
McCarthy had not intended to exist. A compiler followed in 1962, written in Lisp itself, roughly 40×
faster than the interpreter.
T2 — third-party encyclopaedic, the second such source in the spoke after prolog. It is the only Lisp source here that reports the language’s decline as well as its design.
The property everything else follows from
Program text is a parenthesized data structure — s-expressions — and Wikipedia’s claim is the strong one: Lisp was the first language whose code was represented directly in a standard data structure of the language itself. Homoiconicity is not an added feature here, it is the notation. Macros, metaprogramming and a program that rewrites itself all fall out of it, which is why common-lisp‘s extensibility pitch and clojure‘s code-as-data are the same inheritance spent differently.
The article credits Lisp with a list of firsts that the rest of this corpus now treats as background: conditionals, first-class functions, recursion, garbage collection (Daniel Edwards, before 1962), dynamic typing, symbols, the REPL, a self-hosting compiler, and the whole language being available at read, compile and run time. Set against memory-management-model, the fact that GC is a 1962 invention by a graduate student is the sharpest date in this wiki.
The family, and what splits it
- common-lisp — 1980s consolidation of Maclisp, ZetaLisp and others; ANSI X3.226-1994. The date the community site declines to give.
- scheme — 1975, minimalist, mandatory tail-call optimization, the Revised Reports.
- clojure — modern dialect on the JVM built on immutability.
- Emacs Lisp and Racket — an editor’s extension language and a teaching/research dialect.
- Later dialects: Arc, Hy, LFE, and paul-graham‘s 2019 Bel specification.
Two Lisps standardized in opposite institutional directions (language-governance): Common Lisp through ANSI in one 1994 document, Scheme through a series of Revised Reports. ISO also standardized ISLISP (13816:1997, revised 2007), which neither community site mentions.
Decline, and what it corrects
Use fell through the 1990s, partly because the language was expensive on the hardware of the time; the article names paul-graham as a driver of the post-2000 revival, counts eleven actively maintained Common Lisp implementations as of 2010, and lists Quicklisp, CLiki and Planet Lisp as the infrastructure. MIT replaced scheme with Python in its introductory course. Present-day use is specialized: Naughty Dog’s GOAL for game code, embedded work.
This is what a first-party page cannot say, and it is why growth edge 1 wanted third-party sources. common-lisp‘s site argues that an extensible language “does not go out of style”; the encyclopaedia records a language that went out of style anyway and came partly back. Both statements can hold — style here means adoption, not obsolescence — but only one source in the pair was willing to write the second one down.
Related
common-lisp · scheme · clojure · john-mccarthy · paul-graham · programming-language · language-governance · memory-management-model · synthesis