XEmacs
From Wikipedia, the free encyclopedia
| XEmacs | |
XEmacs |
|
| Developer: | XEmacs community |
|---|---|
| Latest release: | 21.4.20 / December 10, 2006 |
| OS: | Cross-platform |
| Use: | Text editor |
| License: | GNU General Public License |
| Website: | XEmacs Website |
|
| edit |
XEmacs is a text editor which is forked from the GNU Emacs text editor. Its signature feature is good GUI support. XEmacs runs on almost any Unix-like operating system (inside X or in a text terminal), as well as on Microsoft Windows. It also runs on Mac OS X with X11.app; a native Carbon version is in alpha testing.
Like GNU Emacs, XEmacs is free software and available under the GNU General Public License. GNU Emacs, XEmacs and a number of other similar editors are generally referred to collectively or individually as emacsen and emacs, since they are all inspired by the original TECO Emacs.
Contents |
XEmacs was created in 1991 as Lucid Emacs by Richard P. Gabriel's Lucid Inc. to support their proprietary Energize C++ IDE. Lucid forked the code, developing and maintaining their own version of Emacs, because they were dissatisfied with the maintenance of the original Emacs, and delays in the release of the next GNU Emacs, version 19. Being released earlier, and having more features, meant that Lucid's version of Emacs was initially very popular. It also supported Microsoft Windows natively before GNU Emacs, helping its popularity.
When Lucid went out of business in 1994, the code was picked up by other developers. Companies such as SUN wanted to carry on shipping Lucid Emacs; however, using the trademark was legally ambiguous because no one knew who would eventually control the trademark 'Lucid'. The "X" in XEmacs is either derived from an early focus on support for the X Window system as the graphical user interface or a "less than favorable" name resulting from compromise among the parties developing XEmacs.[1]
XEmacs has always supported text terminals and windowing systems other than X11. Versions of Lucid Emacs did not support text terminals.[2] XEmacs and GNU Emacs can be compiled with and without X support. For a period of time XEmacs even had some terminal features, such as coloring, that GNU Emacs lacked.
From the beginning, XEmacs aimed to have a frequent release cycle, currently 2-3 releases per year[3], and it also aimed to be more open to experimentation, and is often the first Emacs to offer new features, such as inline images, variable fonts and terminal coloring. Over the years, the code has been extensively rewritten to improve consistency and follow modern programming conventions stressing data abstraction. XEmacs has a unique packaging system for independently maintained Lisp packages. The latest version has GTK+ support[4] and a native Carbon port for Mac OS X [5].
XEmacs has always had a very open development environment, including anonymous CVS access and publicly accessible development mailing lists and XEmacs comes with a 140-page internals manual (Wing and Buchholz, 1997).
XEmacs' project policy is to maintain compatibility with the GNU Emacs API. For example, it provides a compatibility layer implementing overlays via the native extent functionality. "the XEmacs developers strive to keep their code compatible with GNU Emacs, especially on the Lisp level." [6]
One problem with XEmacs has been Unicode support. As of 2005, the released version depends on the unmaintained package called Mule-UCS to support Unicode, while the development branch of XEmacs has had robust native support for external Unicode encodings since May 2002, but the internal Mule character sets are incomplete, and development seems stalled as of September 2005 [7].
XEmacs development is split between three branches: stable, gamma, and beta[8], with beta being the first to get new features, but being the least tested, stable and secure. Version 20.0 was released on 9 February 1997, and 21.0 on 12 July 1998. As of December 2006, the current stable version is 21.4.20 and the latest release in the beta branch is 21.5.27. There are currently no gamma releases. Beginning with the release of XEmacs 21.4.0, XEmacs version numbers follow a scheme similar to that of Linux, with an odd second number signalling a development version, and an even second number for stable releases.
SXEmacs [9] is a fork of XEmacs 21.4.16 led by former XEmacs developer Steve Youngs. It is currently in beta.
The schism between GNU Emacs and XEmacs is one of the most well-known examples of a code fork. Several of XEmacs's principal developers have published accounts of the split: Ben Wing's critiques[10] Stallman's technical choices and unwillingness to compromise, Jamie Zawinski's email record of the split containing correspondence from participants[11], Stephen Turnbull's summary[12] of both sides, and Richard P. Gabriel reconsiders and implies that Stallman is "insane"[1]. Stallman describes the XEmacs team as being uncooperative.[13].
Both programs are licensed under the GNU GPL. The copyright of some of the XEmacs code is even held by the Free Software Foundation because of prior copyright assignment during merge attempts and repeated copying from GNU Emacs into XEmacs. Code could in principle be freely exchanged between the two projects. However, the GNU Emacs project has a policy of including only contributions whose copyright has been assigned to the FSF. The FSF asserts that copyright assignment is necessary to allow it to defend the code against GPL violations ("Why the FSF gets copyright assignments from contributors"). The XEmacs project, which does not share the FSF's interpretation, does not and has never required copyright assignment, and has in the past received much assistance from various software corporations who also agree. The XEmacs project has also freely accepted patches from various contributors over the years. The result is that much of the code in XEmacs has an unknown or corporate copyright, and copyright assignment of all the code is not possible in practice. The FSF's strict insistence on copyright assignment has, in addition to numerous other issues, tended to scuttle the various merge attempts to date.
However, new features in either editor usually show up in the other sooner or later. Furthermore, many developers contribute to both projects; in particular, many major Lisp subsystems, such as Gnus and Dired, are developed to work with both.
- Emacs - a more in-depth article about GNU Emacs and XEmacs.
- List of Unix programs
- The XEmacs Project's website.
- Lucid Emacs history from the view of its original maintainer, Jamie Zawinski.
- The Origin of XEmacs, according to Richard Stallman