← the founders library

On Lisp: Advanced Techniques for Common Lisp

Paul Graham
Summary

Paul Graham's advanced treatise on Lisp macros, closures, and the bottom-up programming style that distinguishes Lisp from every other language. The book demonstrates how to build embedded languages (domain-specific languages) inside Lisp by writing code that writes code — a technique Graham argues is the most powerful tool a programmer can have because it lets you solve problems at the right level of abstraction rather than the level your language forces on you.

For founders

Graham credits this book's thesis — bottom-up programming via macros and embedded languages — for Viaweb's speed advantage. In 'Beating the Averages' he explains that Lisp let them 'do things in a few lines of code that would have taken pages in whatever language our competitors were using,' and that the ability to define new languages for each subproblem made their three-person team as productive as a larger team using conventional tools.

For a founder, On Lisp is the fullest expression of Graham's philosophy of building: design your system so that the language grows to meet the problem, rather than contorting the problem to fit the language. This maps directly to how startups should build products — start minimal, let the design evolve, and invest disproportionately in the infrastructure that accelerates every subsequent feature. The book is a hard technical read but the principle it demonstrates is simple and immediately transferable: the most valuable code you write is the code that makes your other code easier to write.

Written about