A Comparison of Xemacs and Gnu Emacs

Emacs aficionados will point out that Emacs is intended to be left running all of the time; in some ways the editor doubles as an operating environment or shell.
Introduction

Most Linux users have probably used the Gnu Emacs text editor at one time or another, if only out of curiosity. Originally intended as a programmer's editor, Emacs has grown over the years, accreting to itself pieces of LISP code from a variety of contributors. Now one of the most common complaints about the editor is its sheer bulk and concomitant slowness to load. Emacs aficionados will point out that Emacs is intended to be left running all of the time; in some ways the editor doubles as an operating environment or shell. As high-speed CPUs, faster hard disks and larger amounts of RAM have become more affordable, this complaint is no longer as much of a concern as it once was.

Emacs makes up for this minor drawback by being very configurable and extensible. Name a function related to text and there is probably an Emacs mode that will facilitate it. Many people use Emacs as their sole mail and Usenet news client, while programmers will find code-editing, compiling, and debugging well supported for a variety of programming languages. You can syntax-highlight any sort of text or code. The shell mode allows input and output from your preferred shell to be the contents of a buffer, from which text can be cut and pasted into other buffers. The various modes such as mail, news and the programming-specific modules are loaded and unloaded as needed.

Though many people over the years have contributed modes and enhancements to Emacs, the program is still firmly controlled by Richard Stallman of the Free Software Foundation, who wrote the first version back in the mid-seventies.

Two Editors Diverged in a Yellow Wood...

Before Gnu Emacs became well integrated with the X Window System there arose a group of Emacs-users, both private and corporate, who were impatient with the pace of the progress Stallman and the FSF were making on the program. They initiated a project to improve the user interface of Emacs (especially the X Window System support) with the intention of eventually merging the two code lines together.

One of the companies involved, the now-defunct Lucid, Inc., gave its name to the first versions of this divergent Emacs; you may have seen archives of Lucid Emacs files on the Linux FTP sites or on archive CDs.

Lucid Emacs acquired a new name, Xemacs, when the Lucid company folded. The University of Illinois, Sun Microsystems and the Amdahl Corporation emerged as the primary institutional and corporate supporters of the program.

Over the next few years conflicts arose between the FSF and the Xemacs team. Richard Stallman agreed to incorporate the Xemacs code into Gnu Emacs, but the conditions he set were unacceptable to the Xemacs developers. A stalemate has resulted. It looks as if for the foreseeable future the two versions of Emacs will develop in parallel. On the one hand, this may seem like a lot of wasted effort, but on the other, an element of competition has been introduced which in some ways benefits the end-user.

The Free Software Foundation might have been tempted to rest on its laurels if not for Xemacs. After all, the Gnu Emacs of even a couple of years ago was quite a unique and respectable piece of software. Improvements in recent years are tending towards refinements and user-interface improvements. The basic editing functionality really doesn't need much work.

Major Differences

Though both Gnu Emacs and Xemacs are programmed in the LISP programming language, the underlying structures are different enough that LISP add-on packages which work with one may not work with the other. Luckily many of the package maintainers are attempting to make their modules work with both Xemacs and Gnu Emacs, though the functionality may not be identical.

As an example, Bill Perry's W3 package, which turns Emacs into the world's only LISP-based web browser, works with both Emacsen (an odd term which is often used as a plural form of Emacs), but the Xemacs version will display inline images and backgrounds whereas Gnu Emacs won't.

Xemacs features an iconic toolbar, and several modes, e.g., the aforementioned W3 and the VM mail mode, have their own toolbars which only appear in Xemacs, though otherwise the modes function well in Gnu Emacs.

Gnu Emacs is limited to fixed-width fonts, while Xemacs can use variable-width proportional fonts. This feature will be of little interest to programmers, as source code looks ragged and is harder to read with proportional fonts. I confess I've never felt the need for anything but fixed-width fonts in a text editor, but tastes and needs differ.

I've found a few packages which work only with Gnu Emacs. One is NC, which replaces the native Emacs directory browser, Dired, with a Norton Commander-like interface.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

nice comparison

Anonymous's picture

but i lol'ed at 'lots of disk space' somehow meaning '50mb'... maybe 5 _thousand_ MB would be a lot... even then, just during compile I couldn not care less how much space is used

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState