Emacs Redisplay Internals, and JS Mode War

By Xah Lee. Date: . Last updated: .

this article is very well written.

[Buttery Smooth Emacs By Daniel Colascione. At https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102 , accessed on 2016-11-30 ]

it discusses the internals of emacs's display engine, and shows how ancient it is. The English, as an essay, is also top notch.

but, by the way, i remember the author Daniel Colascione.

Emacs JavaScript Mode War, 2008

my comment:

of this thread,

Stefan Monnier, is the previous emacs maintainer for many years. He's a professor of functional programing language research. I like.

Paul Eggert is maintainer of bison. I am not sure who he is, but probably old lisper and C coder. I like. He, implemented “curly quotes” in emacs inline string in 2015, which generated a flamewar, started by one of the most [censored] emacs dev Alan Mackenzie.

Stefan Monnier was the maintainer at the time. As far as i know, he did not say it should be reverted. But, in the end, the improvement got killed by a non-maintainer and non-coder rms. The reason this guy gave was “please don't”.

Alan Mackenzie, is a old lisper, who is cc-mode maintainer for 10 or perhaps more years now. He, is a ascii sticker. Back in 2007 or so, he is of the opinion that any messages should not contain unicode. His opinions about emacs, on anything, i find the most worth free. And he is active in pushing emacs the way he likes, in any UI improvement flamewar.

Daniel Colascione, is relatively a young man. He came to fame in 2016, by writing an article exposing how lousy is emacs's 30 or 40 years old implementation of GUI/X11. https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102 I believe he works at facebook.

Daniel, i recall, is the person, single handedly, killed a major emacs progress in 2009. Back then, emacs doesn't have a JavaScript mode. Steve Yegge, a well known programer star, created one, js2-mode, that features a on-the-fly syntax checker. He submitted to emacs dev, begged to be included. But a guy from nowhere, loudly claimed emacs should not include a monster. Nobody said anything in emacs dev. The maintainer was Stefan Monnier. At the time, nobody cared or even know about js. As far as i know, Stefan did not say anything. In the end, a simplistic js mode, which was named expresso mode by Karl Landstrom (old lisper), which Daniel maintains, got included in emacs, renamed javascript-mode.

my JavaScript mode, written from scratch of recent years, doesn't do much, is better than the js mode included in emacs.

Daniel, from the little i know of him, has grown, and i think he is one of the few capable of rewriting emacs from the ground up.

Impressions. Impressions. It's all impressions. History, is made of your impressions.

See also:


back in 2008, when Steve Yegge wrote the js2-mode

[js2-mode: a new JavaScript mode for Emacs By Steve Yegge. At http://steve-yegge.blogspot.com/2008/03/js2-mode-new-javascript-mode-for-emacs.html , accessed on 2016-11-30 ]

back then emacs did not ship with a js mode. There are js modes out there, but Yegge's js2 mode is revolutionary. It checks syntax on the fly. 10k lines of elisp by a finest programer. It's not just a dumb mode that color text as vast majority of emacs's lang modes are.

Yegge humbly offered this mode to the emacs dev list. Yegge, was a programer internet star. But on the emacs dev list, everyone is a dog, unless you are rms. But still, Yegge, very humbly offered to do whatever GNU emacs dev requires to get the mode bundled with emacs. The GNU emacs dev community is pretty slacking, there's no process, lots arguments. Nobody seems to cared about a js mode. (JavaScript back then is much ridiculed, along with php. To date, no php mode is bundled with emacs.) Back then the maintainer is Stefan Monnier. But he didn't seem to have much to say, almost like don't even know what js is.

then, comes out this guy, Daniel Colascione, who bitched about why emacs should not add this bloated Yegge thing, why it isn't just basic using emacs basic coloring basics and basics and get on with the emacs traditional way, and he offered his own, actually, a js mode that's out in the wild, really basic and he took maintenance or contributed. And basically, that's the end of story. A great advancement in emacs is dispelled.


A JavaScript mode, is finally bundled. Activated by the command js-mode. This is renamed from the “espresso” mode by Daniel Colascione, which is based on a earlier JavaScript mode by Karl Landstrom.

A much more advanced js mode, named js2-mode, by Steve Yegge, is not chosen. Rather sad. Steve's mode features a on-the-fly js parser (written in elisp). It actually validate js code as you type, similar to nxml mode by the XML expert James Clark.

Steve's “js2-mode” was being attacked in the GNU dev mailing list in 2009-08 (by more or less just one guy). Steve, is a humble guy at least in his public writing. He promised to fix whatever the mentioned issues to combine it with (alleged) advantages of espresso mode. ( http://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00619.html )

Full thread on “js2-mode” at http://lists.gnu.org/archive/html/emacs-devel/2009-08/threads.html . Look for subject name “Why js2-mode in Emacs 23.2” dated 2009-08-09.

Patreon me $5 patreon

Or Buy Xah Emacs Tutorial

Or buy a nice keyboard: Best Keyboard for Emacs

If you have a question, put $5 at patreon and message me.