XEmacs

Missing image
XEmacs_Screenshot.png
XEmacs running under Fedora Core 2

XEmacs is a text editor derived from GNU Emacs. It capitalises on good GUI support. XEmacs runs on almost any Unix-like operating system (inside X or on a text terminal), as well as on Microsoft Windows. It also runs on Mac OS X with an X server, and a native Carbon version is in alpha test.

Like GNU Emacs, XEmacs is free software available under the GNU General Public License. When speaking about an unspecified version of GNU Emacs/XEmacs, the generic lowercase term emacs (plural emacsen) is used.

XEmacs was created in 1991 as Lucid Emacs by Lucid Inc. to support their proprietary Energize environment. Lucid forked the code, developing and maintaining their own version of Emacs, because they were dissatisfied with the maintenance of the original Emacs. Their version of Emacs was very popular, so when Lucid went out of business in 1994, the code was picked up by another development team, and maintained under its current name, "XEmacs".

Differences between GNU Emacs and XEmacs

GNU Emacs and XEmacs have different development philosophies. XEmacs is more open to experimentation, and is often the first to offer new features, such as inline images, variable fonts and terminal coloring.

In the past, some detractors have complained that because of its more aggressive, features-driven approach, XEmacs internals are less consistent and less extensively documented than GNU Emacs. Actually, the opposite is true: XEmacs comes with a 400-page internals manual, making it one of the most-well-documented software projects, and has been more open to change than GNU Emacs, with the result that its internals have been extensively rewritten to improve consistency and follow modern programming conventions stressing data abstraction. One of the sticking points in the various GNU Emacs/XEmacs merge talks, in fact, has been the XEmacs preference for abstract data interfaces as compared to Richard Stallman's preference for interfaces that use simple Lisp data types (cons, vector) and expose the internals.

It is a popular myth that XEmacs does not, or did not, support text terminals or any else than X Windows. This is partly due to the name, which was due to a choice (sometimes seen as unfortunate) by Lucid, Inc. and Sun Microsystems when they were the primary developers of XEmacs. In fact, XEmacs has had proper support for text terminals (or emulators such as xterm) since version 19.12 (early 1995) and has supported Microsoft Windows natively since the late 1990s. For a period of time it even had some terminal features, such as coloring, that GNU Emacs lacked.

In keeping with its bazaar-model development environment, XEmacs has a separate packaging system for independently maintained Lisp packages, which is more extensive and more up-to-date than GNU Emacs, which includes a much smaller subset of more carefully integrated packages in its core.

Historically, XEmacs had a more open development environment, including anonymous CVS access and publicly accessible development mailing lists. However, with the release of GNU Emacs 21 in 2001, that project has also provided both of these facilities. The development models of the projects are now very similar, with the exception that all contributions to GNU Emacs require copyright-assignment papers. (That is, the author must sign a legal document transferring the copyright of the code to the Free Software Foundation, or FSF.) The issue of copyright assignment is one of the main issues dividing the two camps -- see below.

XEmacs still has somewhat better X toolkit support, and experimental Gtk+ support. Its multilingual support is poorer, but is optional; internationalization is hard-coded into GNU Emacs.

Programmers who wish their Emacs Lisp packages to work with both programs have to be careful to avoid features specific to either. For example, XEmacs introduced the concept of extents, a region of text that can be assigned attributes such as color and font. A similar but not identical feature, overlays, was later added to GNU Emacs. 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 schism between GNU Emacs and XEmacs is one of the most well-known examples of a code fork. Both programs are licensed under the GNU GPL (in fact, the copyright of some of the XEmacs code is owned by the Free Software Foundation, due to prior copyright assignment during merge attempts and to borrowing from GNU Emacs), so 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. Richard Stallman (RMS), the head of the FSF, asserts that copyright assignment is necessary to allow the FSF to defend the code against potential lawsuits from proprietary software corporations. The XEmacs project, which does not share the FSF's philosophical objections to such corporations, does not and has never required copyright assignment, and in fact has in the past received much assistance from various software corporations. 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. Because of RMS's strict insistence on copyright assignment, much or all of the XEmacs code could not be used in a potential merge with GNU Emacs, which (in addition to numerous other issues) has tended to scuttle the various merge attempts to date.

There is significant rivalry between the two camps, which is why new features in either editor usually show up in the other sooner or later. However, many developers contribute to both projects; in particular, many major Lisp subsystems, such as Gnus and Dired, are developed to work with both.

Project status

XEmacs development happens on three branches: stable, gamma, and beta, with beta being the first to get new features, but being the least tested. As of November 2003, the current versions in these branches were 21.4.14 and 21.5.16, without any gamma release. Future version numbers will follow a scheme similar to Linux, with an odd second number signalling a development version, and an even second number for stable releases. In March 2005 the stable branch was 21.4.17 and the Beta branch was 21.5.19.

Version 20.0 was released on 9 February 1997, and 21.0 on 12 July 1998.

Further reading

fr:XEmacs

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools