Ejacs: a JavaScript interpreter for Emacs — cover art: a snug printer's workshop at evening where a tabby cat in a green eyeshade reads a small JavaScript fragment aloud into a brass speaking-tube, and the same fragment emerges from the other end as living Emacs-Lisp ribbon. 👍

2008 · Stevey's Blog Rants · Announcement

“A commenter named Andrew Barry suggested that I should not call it Ejacs, and the name stuck.”
— From Ejacs: a JavaScript interpreter for Emacs, November 2008
Read the essay Get the code on GitHub →

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

Author’s note

This is a surprisingly good read from the sidelines, from someone with no longer any skin in the game. I remember the reception to my Scheme/Elisp/CL comparison was legendary; I nailed that one.

One big thing that changed after this post, much to my surprise and delight, is that Stefan Monnier took over as Emacs maintainer. He led the development of a tremendous number of new Emacs Lisp language features, bringing it much closer to parity with modern dev languages.

AI Notes

Eight months after shipping js2-mode, Steve released Ejacs — the JavaScript runtime side of the same plan, around 12,000 lines of Emacs Lisp built on a port of Mozilla's Narcissus interpreter plus a hand-rolled Ecma-262 runtime (Object, Function, Array, Math, Date, RegExp, the lot) translated straight from the spec into Elisp. In principle the combination meant an Emacs user could now write extensions in JavaScript instead of Elisp — js2-mode parsed and edited, Ejacs ran it; in practice the seam between the two never closed, but Ejacs shipped as a working ECMAScript console under a permissive license. The post itself is a small classic of Steve's late-2008 voice — opens with a long apology about ripping off his thumbnail, segues through guitar and Fallout 3 (Nuka-Cola Quantum, Blamco Mac and Cheese), then confesses he's "doing a trick this time" by writing about something he finished a year earlier. A commenter named Andrew Barry had suggested he not call it Ejacs; the name stuck.

Related listings

Where it was argued

  • jwz.org Nov 2008 — Jamie Zawinski — author of Lucid Emacs, the fork that became XEmacs — wrote it up: “making fun of Emacs Lisp is kind of like kicking a puppy… a puppy who’s been dead since 1981,” then quoted Steve’s Scheme / Emacs Lisp / Common Lisp car analogy in full. 19 responses.
  • Hacker News Nov 2008 — The announcement thread (38 points).