XEmacs is Dead. Long Live XEmacs! — cover art: a small warm storybook study where a young Emacs-mascot rabbit in a workshop apron stands beside an older XEmacs-mascot rabbit on a quilted chair, both holding identical handcarved keyboards; the elder is gently passing his keyboard to the younger as the lamplit room glows oxblood and honey.

2008 · Stevey's Blog Rants · Rant

“Jamie Zawinski is a hero. A living legend. A guy who can use the term 'downward funargs' and then glare at you just daring you to ask him to explain it, you cretin.”
— From XEmacs is Dead. Long Live XEmacs!, April 2008
Read the essay

© 2008 Steve Yegge. Originally published at Stevey's Blog Rants.

AI Notes

An obituary conducted as election coverage. Written while the 2008 Democratic primary was still undecided, the essay keeps drifting into campaign language ("GNU Emacs is getting all the superdelegates. That warmonger VIM is sitting back and laughing at us") and finally asks the trailing candidate to withdraw for the good of the party. Steve is no spectator here: he was maintaining fifty thousand lines of his own elisp across both Emacsen, so the fork cost him personally — display code written twice, whole mode definitions pinned to ancient versions behind if-xemacs guards. The affection is real all the same. He rates every XEmacs developer a better engineer than himself, no exceptions, and asks readers to send the team chocolates. History took his side fast; XEmacs development wound down within a few years.

The eulogy is only half the essay, and the half the title hides has aged the more interestingly. Once XEmacs is laid to rest, Steve turns the same cold eye on Emacs itself, argues its real competition is the browser rather than the IDE, and predicts that "the best Java development environment on the planet" will someday be written in JavaScript. He was describing VS Code seven years before it shipped. His three demands for Emacs (a modern rendering engine, a VM that hosts many languages, a concurrency story) got met mostly by other people's editors instead, which is exactly the eclipse he was warning about. The primary-race conceit carries one running gag all the way to its punchline, still intact here.

Related listings

  • 2008

    js2-mode: a new JavaScript mode for Emacs

    Published the month before — Steve's most-cited Emacs project, and the proximate reason he had to think about XEmacs in 2008. Several commenters on the js2-mode post asked whether they should give up XEmacs to use it.

  • 2008

    Ejacs: a JavaScript interpreter for Emacs

    The third panel of Steve's 2008 Emacs triptych — the runtime side of his JavaScript-in-Emacs project. The XEmacs eulogy is the year's middle panel; together they map the territory.

  • 2008

    Emergency Elisp

    Steve's tour of Elisp from January of the same year. Read alongside the XEmacs eulogy it gives the full Emacs-2008 view: how the language works, what's worth saving from the fork, and what's worth letting go.