A road to Lisp: Why Lisp
Points and comments are a snapshot, not live.
Lisp's macros, REPL-driven development, and homoiconicity enable language extensibility.
The article explains why Lisp is worth learning despite its steep learning curve. It covers three key features: extensibility through macros that allow programmers to grow the language toward their problems; homoiconicity (code-as-data) where programs are made of lists that can be manipulated as data; and REPL-driven development, a live system where code is continuously evaluated in a running process without stopping. These features enable domain-specific languages and extensible software, demonstrated with examples like a custom HTML DSL and a math graphing DSL.
What commenters are saying
Many commenters reported a formatting bug where code blocks appeared black-on-black across browsers; the author fixed it after the first report. One top discussion centered on understanding Lisp macros. Several commenters explained that macros are functions that run at compile time to transform ASTs into new shapes, unlike runtime function calls. A commenter noted that homoiconicity means macros take the same data structure (S-expressions) as normal code, making them easier to write than Rust macros. Another argued macros blend code generation with compile-time optimization.