Emacs is the primary editor of the so-called "GNU Operating System". It runs on just about every platform out there, including many Unix variants and Windows. While it is often likened to an operating system itself, the official description is as an advanced, self-documenting, customizable, extensible real-time display editor.

Extensible is an understatement. You can go beyond simple customization and write entirely new commands and programs in the Lisp language to be run by Emacs's own Lisp interpreter. Almost any part of Emacs can be replaced without making a separate copy of all of Emacs. Most of the editing commands of Emacs are written in Lisp already; the few exceptions could have been written in Lisp but are written in C for efficiency. Of course, being a GNU program, all the source code, both C and Lisp, is readily available.

"Self-documenting" means that at any time you can type a special character, 'Control-h', to find out what your options are. All Emacs commands are documented in the Lisp source code, somewhat similar to the javadoc documentation system.

Emacs originally was an acronym for Editor MACroS. RMS says he "picked the name Emacs because 'E' was not in use as an abbreviation on ITS at the time." The first Emacs was a set of macros written in 1976 at MIT by RMS for the editor TECO under ITS on a PDP-10. Emacs was started by Guy Steele as a project to unify the many divergent TECO command sets and key bindings at MIT, and completed by RMS.

The first port of Emacs to C was Gosling Emacs, written by the Java guy himself. Gosling Emacs was commercialized by Unipress, somewhat unsuccessfully, and has been superceded by the C port of GNU Emacs.

A short time before Emacs 19 was released, a company called Lucid forked the GNU code and produced Lucid Emacs. That product has evolved into XEmacs. Currently, the two Emacsen, GNU and X, are developed seperately, but remain largely compatible. Recently, both have integrated MULE, the Multi-Lingual Enhancement to Emacs, making them both full Unicode editors, capable of displaying and editing non-latin character sets.

Emacs remains a popular editor, particularly with programmers, who appreciate its rich command set and extensibility. Besides editing text, Emacs has a wide range of other capabilities. From within Emacs, one can send an email, read USENET news, run a shell, compile a program, play a number of games, and even browse the web. Along with vi, it is one of the two editors rarely absent from any Unix system.

Sources:

  • Emacs FAQ - http://www.gnu.org/software/emacs/emacs-faq.text
  • Emacs Manual - http://www.gnu.org/manual/emacs/index.html
  • XEmacs History - http://www.xemacs.org/About/index.html