Emacs, the forgotten Virtual Machine

March 05, 2014

Editor wars are a longstanding part of the hacker culture. Programmers are known to spend a lot of time praising the virtues of their beloved tools, usually represented by two text-editor camps: Vi/Vim and Emacs.

I’m a happy user of GNU Emacs, a very customizable and portable Lisp interpreter (with its own elisp dialect). My choice is only a matter of personal taste (or lack thereof, as noted elsewhere). Standing on the merits of trusted/solid/sound technology.

Emacs has always been very powerful and extensible. To the point that people wrote communication clients, organizers, and even games in elisp. Just to avoid leaving their custom environments.

In a broader sense, we can say Emacs is much more than a Lisp-based runtime: it’s a Virtual Machine (VM), that happens to be optimized for text manipulation tasks. No surprise it comes bundled (disguised?) as an editor.

Complex business applications/integrations, developed as elisp programs, are not uncommon. Steve Yegge‘s story about Amazon’s Mailman is specially amusing.

Long before Joel Spolsky could write the VBA specs, and pitch Microsoft Office technical “innovations” (such as embedded interpreters, p-code, automatic memory-management, and program extensibility), there existed Emacs. The forgotten VM.