I’ve been rereading Hackers and Painters, by Paul Graham, and his chapter on Lisp was especially interesting, given that I’ve been working on expanding my Emacs knowledge and further refining my environment.
The connection between Lisp and Emacs? In this sense, they both became the standard-bearer for their field (programming languages, text editors), and reached that point very soon after the inception of the field. Each of them was so far ahead of the others that even decades later, one could argue that neither Lisp nor Emacs has been matched. If anything, progress in the fields has just been that the mainstream (meaning, widely accepted) products are more and more like Lisp and Emacs.
This doesn’t seem atypical, that there is this quantum leap early in the field. Among guitarists the Gibson Les Paul and Fender Stratocaster are probably the two most popular electric guitars, even a half century after their initial release in the late 1950s, when the electric guitar originated. In my non-expert vantage point I don’t perceive a fundamental difference (as in performance and function, not appearance) between the newest guitars now and the original Strat and Les Paul.
As Graham does, the same argument could be made for Ruby and Lisp, that of “modern” programming languages, Ruby is one of the closest to Lisp in terms of functionality (although its form is somewhat different). About Emacs, I don’t know what other text editor could be considered close, but it seems that Emacs is the most imitated – for example, it seems that the Eclipse editor is much closer to Emacs in behavior than it is to, say, vi. (On that note: is any other text editor similar to vi?)
It seems that the cycle is somewhat like this: the field originates, there are a few competing lead products, one dominates clearly, then there are relatively few imitators for the next decade or two (or more). After a while, the imitators become better and more like the original, to the point that they are essentially just re-badging it.
I’ve tried several times to really learn Lisp in the past, but had difficulty hurdling the syntax, probably in part because of my background in C, Perl, C++ and Java. But having now read of the similarities between Lisp and Ruby, I’m eager to see the difference in my perspective as I go through the excellent Emacs and Emacs Lisp tutorials at Xah Lee’s Emacs Blog).