The Story of Emacs Lisp

Stefan Monnier and Michael Sperber have posted a preprint of their paper Evolution of Emacs Lisp. It’s a really interesting account of the history of Elisp and how it has evolved over its lifetime.

The thing about Elisp development is that it mostly flies under the radar. The vast majority of the changes aren’t user1 visible—at least not directly—so it’s easy to think of it as “just there” and never changing. In fact, Elisp is, like Emacs itself, under constant development. The paper traces that development from Elisp’s roots in MacLisp to where it stands now.

One of the major constraints on Elisp is the (nearly) absolute imperative to not break existing code. The reason for that is that much of Emacs is implemented in third party packages over which the developers have no control. This makes the introduction of significant changes, like lexical scoping and threads, difficult. Still, the language has evolved and it’s surprising how much it’s changed even though the core has remained relatively stable.

If you’ve been around for, say, ten years or more it’s surprising how much functionality has been added to the language. Things that we couldn’t live without now simply weren’t there in Emacs 21. So even though the evolution has been slow and steady it has occurred. If you’re at all interested in Emacs’ history and the problems that the developers had to solve, take a look at Monnier’s and Sperber’s paper. It’s a 36 page PDF so plan on spending some time with it.

Footnotes:

1

That is, non-elisp programmer users.

This entry was posted in General and tagged , . Bookmark the permalink.