The Problem With Emacs Revisited

Way back in 2005, Steve Yegge wrote a wonderful post, the-emacs-problem, that discussed why Lisp is the right language for dealing with text and why Emacs is the right tool for dealing with it. A few years later I wrote a post discussing Yegge’s post.

Recently, someone reposted Yegge’s original post and since it was so long ago, I thought it was worth revisiting. Although Yegge makes several great points, the key insight for me, is that a log file structured as S-expressions can be thought of as a program. Sure, the symbols in the function slots may not actually be functions but they can be.

I explored this a bit in in a post that looked at how to make the log file executable. It turns out to be incredibly easy and amounts to little more than defining a function for each of the tags in the function slots. The next two posts push this idea further and show how it can be easy to use the same idea to filter log entries according to some criteria. The thing to remember is that the log file started life as simple data and it was merely a change of view that allowed us to think of it as a program.

This set of posts are among my favorite Irreal offerings and, I think, make the oft quoted Lisp adage that “data is code” (and vice versa) come alive. If you really want to internalize the equivalence between Lisp code and data, read Yegge’s post and follow up with my posts. They’re over 13 years old now but, I think, have stood up well.

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