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

Steve opens with a fan letter — Jamie Zawinski is a hero, the kind of programmer who can drop downward funargs in conversation and glare at you daring you to ask — and then writes an obituary for one of Zawinski's projects: XEmacs, the 1991 Lucid Inc. fork of GNU Emacs. The structural case: XEmacs spent seventeen years dragging Emacs into the modern era (GUI widgets, inline images, terminal colors, variable-size fonts, internationalization, a larger bundled package set), and for a long stretch it was the better Emacs. By 2008 GNU Emacs 22/23 had caught up. Worse, the divergent APIs for keyboard/menu/font/widget handling forced package authors to write display code twice, which authors like James Clark (nxml-mode) had simply stopped doing. Add the crash record — XEmacs's MTBF measurable in hours rather than weeks — and the fork was now actively hurting the community it had helped grow.

The recommendation is unsentimental: wean off, switch back to FSF Emacs, let XEmacs retire with honors. The back half of the essay widens out into a worry about Emacs itself — that the real competition isn't the IDEs but the browser, and Emacs needs a better rendering engine, multi-language VM support, and a concurrency story or it gets eclipsed. Sits alongside js2-mode (March 2008) and Ejacs (November 2008) as the middle panel of Steve's 2008 Emacs triptych.

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.