THE 1980S

GNU Emacs

In 1974, in the hallways of MIT's Artificial Intelligence Laboratory, Richard Stallman tackled a problem that frustrated all programmers of the era: the TECO text editor, while powerful, remained cumbersome to use. He got the idea to improve this tool by drawing inspiration from the E editor developed at Stanford. He added real-time display and redesigned the command system.

Initially, this improvement didn't change much about TECO. Users launched the visual editing mode with Control-R, modified their text, then exited for other tasks. But one feature would transform everything: the ability to redefine commands to call programs written directly in TECO. This freedom unleashed users' creativity as they developed their own command systems. TECMAC, MACROS, RMODE, TMACS, Russ-mode, and DOC flourished in the community. Usage evolved so that exiting the editing mode became unnecessary, and newcomers no longer learned to manipulate TECO directly.

However, TECO showed its limitations. It lacked decent programming structures: no named functions, no proper variables. The first editors built on this foundation quickly became unmanageable. In 1976, the TMACS system attempted to add these missing features. The experiment worked, but performance suffered. Stallman observed, analyzed, and decided to create EMACS.

His approach combined two challenges: enriching TECO with the libraries and self-documentation necessary for readable programming, while designing an entirely new set of editing commands. He studied the numerous TECO-based editors and sought to minimize the number of keystrokes for common operations. By the end of 1976, the first EMACS was operational.

Development continued on Digital Equipment Corporation's PDP-10, under MIT's ITS system. Most of the new code was written in TECO, with Stallman adding only the bare minimum to the language: optimizations for search loops, symbolic expression parsing, and a few new input-output interfaces. In 1977, interest grew beyond MIT's walls. Mike McMahon from SRI International adapted EMACS to Digital's Twenex system. A hundred sites were already using it.

The term "Emacs" then became generic, designating an entire family of extensible editors. One of the most notable versions emerged under UNIX, developed by James Gosling. This implementation brought two remarkable innovations. First, it exploited UNIX's process management capabilities: filtering text through external programs, running different tools in separate windows. Second, it introduced MLisp (Mock Lisp), an extension language independent of the C used for implementation.

This separation between implementation language and extension language revolutionized usage. With MLisp, simple and elegant, users created extensions without compilation or linking. The development cycle accelerated, encouraging the small improvements that make all the difference in a user interface. The language offered an abstract view of text, strings, processes, and windows.

In 1984, Stallman launched GNU Emacs as part of his GNU project. This time, he chose true Lisp as the extension language, more powerful and coherent than MLisp. GNU Emacs became dominant. An active community developed extensions for everything: email, discussion forums, specialized editing for programming languages, debugging interfaces.

Emacs proved that extensible and customizable software can adapt to everyone's needs. This model inspired numerous subsequent developments: a stable core combined with a powerful extension language. Modern development environments adopted this approach, integrating programming languages, interface customization, and task automation.

Emacs's legacy is found in its self-documentation, which provides access to command and function explanations from within the editor, and has become standard for online help in interactive software.

GNU Emacs continues to evolve, faithful to its original philosophy. In a world where technologies become obsolete in a few years, its longevity testifies to the soundness of its principles: extensibility, power, and flexibility. It adapts to contemporary needs without renouncing what made it successful.