[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. A History of Emacs

XEmacs is a powerful, customizable text editor and development environment. It began in 1991 as Lucid Emacs, which was in turn derived from GNU Emacs, a program written by Richard Stallman of the Free Software Foundation. GNU Emacs dates back to 1985 and was modelled after Unipress Emacs, an editor written by James Gosling in 1981 and based on a series of other “Emacs”-like editors, including EINE (EINE Is Not EMACS), c. 1976, by Dan Weinreb, which run on the MIT Lisp Machine and was the first Emacs written in Lisp; ZWEI (ZWEI Was EINE Initially), c. 1978, by Dan Weinreb and Mike McMahon; Multics Emacs, c. 1978, by Bernie Greenberg, which was written in MacLisp and also used Lisp as its extension language; and ZMACS, c. 1980, a direct descendant of ZWEI that on ran the Symbolics LM-2, LMI LispM, and later, TI Explorer (1983-1989). These in turn were inspired by the first Emacs, a package called EMACS, written in 1976 by Richard Stallman, Guy Steele, and Dave Moon. This was a merger of TECMAC and TMACS, a pair of “TECO-macro realtime editors” written by Guy Steele, Dave Moon, Richard Greenblatt, Charles Frankston, et al., and added a dynamic loader and Meta-key cmds. It ran under ITS (the Incompatible Timesharing System) on a DEC PDP 10 and under TWENEX on a Tops-20 and was written in TECO and PDP 10 assembly. ITS was one of the first time-sharing operating systems and dates back well before Unix. ITS, TECO, and Emacs were products of a group of people at MIT who called themselves “hackers”, who shared an idealistic belief system about the free exchange of information and were fanatical in their devotion to and time spent with computers. (The hacker subculture dates back to the late 1950’s at MIT and is described in detail in Steven Levy’s book Hackers. This book also includes a lot of information about Stallman himself and the development of Lisp, a programming language developed at MIT that underlies Emacs.)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 Through Version 18

As described above, Emacs began life in the mid-1970’s as a series of editor macros for TECO, an early editor on the PDP-10. In the early 1980’s it was rewritten in C as a collaboration between Richard M. Stallman (RMS) and James Gosling (the creator of Java); its extension language was known as Mocklisp. This version of Emacs-in-C formed the basis for the early versions of GNU Emacs and also for Gosling’s Unipress Emacs, a commercial product. Because of bad blood between the two over the issue of commercialism, RMS pretty much disowned this collaboration, referring to it as “Gosling Emacs”.

At this point we pick up with a time line of events. (A broader timeline is available at “Emacs Timeline”.)

NOTE: Sometimes there are two release dates listed below. In this case, the first one is the date listed in the source code, and the second one is when the official announcement was made on Usenet. (Sometimes, one or the other of the dates is missing, and then the date below reflects the only existing one.)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Epoch

#### Document Epoch

A time line for Epoch is

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 Lucid Emacs

Lucid Emacs was developed by the (now-defunct) Lucid Inc., a maker of C++ and Lisp development environments. It began when Lucid decided they wanted to use Emacs as the editor and cornerstone of their C++ development environment (called “Energize”). They needed many features that were not available in the existing version of GNU Emacs (version 18.5something), in particular good and integrated support for GUI elements such as mouse support, multiple fonts, multiple window-system windows, etc. A branch of GNU Emacs called Epoch, written at the University of Illinois, existed that supplied many of these features; however, Lucid needed more than what existed in Epoch. At the time, the Free Software Foundation was working on version 19 of Emacs (this was sometime around 1991), which was planned to have similar features, and so Lucid decided to work with the Free Software Foundation. Their plan was to add features that they needed, and coordinate with the FSF so that the features would get included back into Emacs version 19.

Delays in the release of version 19 occurred, however (resulting in it finally being released more than a year after what was initially planned), and Lucid encountered unexpected technical resistance in getting their changes merged back into version 19, so they decided to release their own version of Emacs, which became Lucid Emacs 19.0.

The initial authors of Lucid Emacs were Matthieu Devin, Harlan Sexton, and Eric Benson, and the work was later taken over by Jamie Zawinski, who became “Mr. Lucid Emacs” for many releases.

A time line for Lucid Emacs is

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 GNU Emacs 19

About a year after the initial release of Lucid Emacs, the FSF released a beta of their version of Emacs 19 (referred to here as “GNU Emacs”). By this time, the current version of Lucid Emacs was 19.6. (Strangely, the first released beta from the FSF was GNU Emacs 19.7.) A time line for GNU Emacs version 19 is

In some ways, GNU Emacs 19 was better than Lucid Emacs; in some ways, worse. Lucid soon began incorporating features from GNU Emacs 19 into Lucid Emacs; for the first year, the work was mostly done by Richard Mlynarik, who had been working on and using GNU Emacs for a long time (back as far as version 16 or 17). After that, Lucid folded and Sun continued with XEmacs; further merging work has continued up through the present, done mostly by Ben Wing but a good deal of synching was done by Steve Baur in 1996 with GNU Emacs 19.34.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5 GNU Emacs 20

On February 2, 1997 work began on GNU Emacs to integrate Mule. The first release was made in September of that year.

A timeline for GNU Emacs 20 is

A timeline for GNU Emacs 21 is

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 XEmacs

Around the time that Lucid was developing Energize, Sun Microsystems was developing their own development environment (called “SPARCWorks”) and also decided to use Emacs. They joined forces with the Epoch team at the University of Illinois and later with Lucid. The maintainer of the last-released version of Epoch was Marc Andreessen, but he dropped out and the Epoch project, headed by Simon Kaplan, lured Chuck Thompson away from a system administration job to become the primary Lucid Emacs author for Epoch and Sun. Chuck’s area of specialty became the redisplay engine (he replaced the old Lucid Emacs redisplay engine with a ported version from Epoch and then later rewrote it from scratch). Sun also hired Ben Wing (the author of Win-Emacs, a port of Lucid Emacs to Microsoft Windows 3.1) in 1993, for what was initially a one-month contract to fix some event problems but later became a many-year involvement, punctuated by a six-month contract with Amdahl Corporation.

In 1994, Sun and Lucid agreed to rename Lucid Emacs to XEmacs (a name not favorable to either company); the first release called XEmacs was version 19.11. In June 1994, Lucid folded and Jamie quit to work for the newly formed Mosaic Communications Corp., later Netscape Communications Corp. (co-founded by the same Marc Andreessen, who had quit his Epoch job to work on a graphical browser for the World Wide Web). Chuck and Ben then become the primary authors and maintainers of XEmacs, with Chuck putting out versions 19.11 through 19.14 in conjunction with Ben. For 19.12 through 19.14, Chuck added the new redisplay and various other display improvements and Ben added MULE support (support for Asian and other languages), multi-device support, glyphs, specifiers, and GIF/JPG/PNG support, and redesigned most of the internal Lisp subsystems to better support the MULE work, display work and the various other features being added to XEmacs. After 19.14 Chuck retired from XEmacs and Steve Baur stepped in as release engineer. Ben Wing continued on as the primary author and architect of XEmacs and has remained, sometimes on-and-off, with XEmacs until the present day (late 2004), being responsible for perhaps 75% of all the non-FSF code in the core (i.e. not the packages) of XEmacs.

Soon after 19.13 was released, work began in earnest on the MULE internationalization code and the source tree was divided into two development paths. The MULE version was initially called 19.20, but was soon renamed to 20.0. In 1996 Martin Buchholz of Sun Microsystems took over the care and feeding of it and worked on it in parallel with the 19.14 development that was occurring at the same time. After much work by Martin, it was decided to release 20.0 ahead of 19.15 in February 1997. The source tree remained divided until 20.2 when the version 19 source was finally retired at version 19.16.

In 1997, Sun finally dropped all pretense of support for XEmacs and Martin Buchholz left the company in November. Since then, and mostly for the previous year, because Steve Baur was never paid to work on XEmacs, XEmacs has existed solely on the contributions of volunteers from the Free Software Community.

Between 1997 and 2000, MS-Windows support was added and stabilized by Jonathan Harris, Andy Piper, Ben Wing and Kirill Katsnelson. Hrvoje Niksic and Kyle Jones figured prominently in XEmacs development during these same years. Steve Baur added the package system in 1997 (?), and Olivier Galibert also added the portable dumper support around 2000. Martin Buchholz took over from Steve Baur as release manager in late 1998 (?), and continued in this position through to early 2000 (?), when Stephen Turnbull took it over. XEmacs has also been split into stable and experimental branches since early 1999, and Vin Shelton has been the release manager of the stable branches since the beginning. Ben Wing suffered severe pain problems throughout much of this time, making him unable to use his hands, but he contributed when he could, especially in the form of dictated design documents.

Starting around 2000, Kyle, Hrvoje, Martin and Kirill became less active. Jonathan Harris had dropped out of the project around 1998, and Andy Piper became mostly inactive by the year 2001 or 2002. New faces appeared, however, and others continued strong:

Many attempts have been made to merge XEmacs and GNU Emacs, but they have consistently failed.

A more detailed history is contained in the XEmacs About page.

For more detailed information about the features added to each version, see the files ‘NEWS’, ‘ONEWS’, and ‘OONEWS’ in the ‘etc/’ directory.

A time line for XEmacs is

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Aidan Kehoe on December 27, 2016 using texi2html 1.82.