XEmacs

From Free net encyclopedia

(Difference between revisions)
Revision as of 19:04, 20 April 2006
Unixguy (Talk | contribs)
/* See also */ add [[List of Unix programs]]
Next diff →

Current revision

{{Infobox Software | name = XEmacs | logo = Image:Xemacs.gif | screenshot = Image:Xemacs.PNG | caption = XEmacs | developer = XEmacs community | latest_release_version = 21.4.19 | latest_release_date = February 2 2006 | operating_system = Cross-platform | genre = Text editor | license = GNU General Public License | website = XEmacs Website }} XEmacs is a text editor which is based on, and forked from, the GNU Emacs text editor. It capitalises on 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 which is 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 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. 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 began to be maintained under its current name, "XEmacs" (the "X" coming from the X Window System).

Contents

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 140-page internals manual (Wing and Buchholz, 1997), 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 anything other than X11. 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.

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, the GNU project has begun providing both of these facilities, as well. The development models of the projects are now very similar, with the exception that all contributions to GNU Emacs require copyright assignment for any significant contributions (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.

XEmacs still has somewhat better X toolkit support, and experimental [[GTK+]] support. However, as of 2005, the released version depends on the unmaintained package called Mule-UCS to support Unicode, while GNU Emacs has had robust integrated Unicode support since before 2003. 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.

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. Several of XEmacs's principal developers have published accounts of the split: Ben Wing's sharp critique of Stallman's technical choices and his willingness to compromise, Jamie Zawinski's email record of the split, complete with accounts from Stallman and from Lucid founder Richard Gabriel, Stephen Turnbull's painstakingly neutral account of both sides, and Richard P. Gabriel labels Stallman "insane".[1] Stallman describes the XEmacs team as being uncooperative.[2].

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. The 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.

Project status

XEmacs development is split between three branches: stable, gamma, and beta, 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 March 2006, the current stable version is 21.4.19 and the latest release in the beta branch is 21.5.25. 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 [3] is a fork of XEmacs 21.4.16 led by former XEmacs developer Steve Youngs. It is currently in beta.

See also

External links

fr:XEmacs it:XEmacs pl:XEmacs