Understanding Lisp History...
I just ran across a relatively recent dissertation that goes a long way toward explaining the reasons for the present state of Common Lisp.I wasn’t around in the earliest days of the evolution of Lisp, and so I was never directly aware of Funarg problems, had never heard of Fexprs, and was only aware of macro hygiene issues by way of an introduction by Paul Graham in “On Lisp” and the surrounding discussions among Schemers.
Reading through this dissertation helps a lot to illuminate the issues of the time, and how they were resolved in the definition of Common Lisp. But I fear we might also have lost some expressive power along the way.
For me, the reading is a bit slow going and technically difficult, but seems worthwhile to expend the effort to understand.
This dissertation has given rise to a new implementation of Scheme known as Kernel. It doesn’t sound like a practical utilitarian language in the same sense as our Common Lisp today. But it is interesting nonetheless. I’m still slogging my way through, and looking for a compelling case to include some semblance of Fexprs. Offhand, so far, even though Macros are intentionally limited forms of Fexprs, they might have all the qualities we actually need in our day to day practical programming.
I’d love to hear comments from anyone more knowledgeable.
- DM