My Experience of GNU Emacs vs XEmacs (2007)

By Xah Lee. Date:

This page is a summary account of my experience with Emacs vs XEmacs.

I'm a QWERTY touch-typist since about 1988. For 2 years, 1991 to 1992, i worked as a secretary and typist. I learned Dvorak in 1994. I started using GNU Emacs since 1998 in professional software development settings. I use GNU Emacs daily for perhaps more than 8 hours every single day since and still do so today. (i'll henceforth refer to GNU Emacs as just Emacs)

In 1998 or 1999, i switch to XEmacs because Emacs lacks critical features for my software development needs. The primary one is that Emacs lacks support of syntax coloring when used thru telnet. At the time, my job is to developing web application software and do unix sys admin work, primarily thru telnet/ssh on remote unix servers, and i consider syntax coloring absolutely necessary. Also, XEmacs at the time, is quite more user friendly, and has many features not in emacs. For example, one of the major problem in emacs is that when you press the down arrow key at the end of a file, it will actually insert line returns into the file. Another example: XEmacs is bundled with a email reader VM, which is far more usable than Emacs's ancient rmail. Another example: At the time around 1997, web is booming. XEmacs actually has a build-in web browser written in elisp called W3.

In about 2004, i took another look and switch back to Emacs. The primary cause is that i needed Unicode support to type Chinese and math symbols. Emacs 21 (or the beta version of Emacs 22 at the time on the Mac) supports Unicode by default and works practically well. And, all the major features that caused me to switch to XEmacs has been fixed. (e.g. Emacs support syntax coloring thru telnet/ssh. Pressing down arrow at end of a file no longer insert returns. Reading plain-text emails in a local email client becomes far less important than 10 years ago. (i stopped using emacs to read emails since 2002 or before) A non-dedicated web browser today is of little use than a decade ago. The XEmacs's w3 web browser has been officially retired in 2003 and emacs supports web browsing by a interface to a textual based web browser.

Historical Merits of XEmacs

Here are some features or qualities in XEmacs not in GNU Emacs, from my personal experience in about 1998 to 2002 (1999 is roughly XEmacs 20.3).

• XEmacs supports colors while used in terminal. I can have syntax coloring in programing modes or dired. (GNU Emacs had this only about 2002.)

• When pressing the down arrow key at the end of buffer, emacs will keep inserting line returns. (this is utterly ridiculous)

• The dired mode in XEmacs is much better than emacs's. For one example, when doing a “!” in dired, XEmacs provides tar or gzip suggestions depending on the file. (GNU Emacs fixed this in 2005 or so)

• XEmacs's dired support copy and deletion of directories. Emacs does not. (as of 2007, emacs 22 support it but user needs to turn it on by setting variables dired-recursive-copies and dired-recursive-deletes.)

• When Alt+x shell-command, XEmacs has path completion or command completion. Even in 2007, Emacs 22 still does not (you'll have to install a external package on the web, by Tsuchiya Masatoshi).

• Better or extra packages: “vm” much better than rmail, cperl-mode much better than perl-mode [see Emacs: perl-mode vs cperl-mode] , XEmacs has web browser w3 that is handy occasionally. Typically, XEmacs by default has lots more functionalities, and simply better ones.

• More than one “*Async Shell Command*” will be auto generated when running a second background process. For example, try Alt+x shell-command with sleep 9 & twice. Emacs only allows one. It prompts users to either cancel the second one or kill the first one. (this is fixed in emacs 23.2, released in 2010.)

• XEmacs can start a second shell (or more shells) when you Alt+x shell. (In emacs, even today in 2007 with emacs 22, Alt+x shell the second time will simply switch user to the first shell. If user wants a second shell, you need to rename the first shell's buffer, or call universal-argument first.)

• The result of shell-command is automatically in separate pane, instead of appended at the cursor point.

• When Alt+x man, XEmacs auto shows the result in full window instead of half a window.

• Better documentation in dired. (by pressing h in dired.)

• When copying a file over in ftp in dired, one cannot cancel by Ctrl+g in emacs.

• When adding a new info file, user do not need to edit the index file to have the newly added info doc to show up in the table of content page.

• In shell-command in emacs, if user presses the left arrow, the cursor will move back all the way over the prompt text. This is painful because user often will hold down Alt+b to move back by word to edit, and when user starts to type something, emacs will say “This is read-only”. On XEmacs, the cursor will stop at the beginning of the user input point. (this can now be fixed in emacs 22. [see Emacs Init: Stop Cursor Going into Minibuffer Prompt])

• XEmacs has binary download for Windows and Mac, that people can just download and use. For Emacs, user usually have to compile it, often with lots of problems. When a binary is found for Emacs, usually it doesn't work or way outdated.

• Sometimes you read from the web that XEmacs crash often, or that its font or display is hedious. My experience is that XEmacs crashes less often than GNU Emacs, and XEmacs is prettier.

In general, i can say that from my personal experience during at least 1998 to 2002, XEmacs is simply a far better software in quality, and GNU Emacs feels like a unpolished software. This fact about their quality gap is reasonably understood by their history. XEmacs was created and made by a commercial corporation Lucid inc during about 1990. Lucid went out of business in 1994 (following the wave of AI Winter). However, the commercial effect on quality, took GNU Emacs more than a decade to catch up.

Emacs vs XEmacs Schism

For detail and many articles about the Schism, see: GNU Emacs and XEmacs Schism, by Ben Wing.

“Free” Software Morality, Richard Stallman, Paperwork Bureaucracy

See: “Free” Software Morality, Richard Stallman, Paperwork Bureaucracy.

My Experience on Text-based emacs vs GUI emacs

I started using emacs daily, some 8 hours a day, since 1998. From 1998 to 2005, i'm a XEmacs user. Also, i use it exclusively in terminal in these years.

From about 2004 on, i started to use emacs in GUI. The primary impetus that made me switch to GUI is because Mac is my main machine at home and since about 2001 when OS X came out, its Terminal app does not let one set the Cmd key as Meta. (still not possible today), and Meta at Cmd position is important to me. The other reason is that i started to need Unicode for math symbols and Chinese. This is why i started to look for solutions … (XEmacs does not have good Unicode support out of the box at the time (prob still not now) and Unicode in terminal is not well supported in early 2000s)

The solution is either one of the pre-built GUI emacs for the mac (there were several at the time, before Aquamacs or Carbon Emacs became the main choices on the Mac), or using emacs in X11 installed on OS X (at the time, X11 for OS X isn't distributed by Apple) … long story short, i switched to GNU Emacs from XEmacs and adopted today the Carbon Emacs (which is GUI based) as my main emacs.

So, only after 5 years of pure text based emacs, i began to know what are the GUI menus in emacs starting in 2006. Even then, i still don't use the mouse other then occasionally pulling menus to see what's there, or occasional dragging pane separators to adjust split panes size. Only in 2007 or 2008, i noticed that mouse buttons can be used for copy/cut and is sometimes quite convenient when your hand is on the mouse in a browsing mode (such as doing tasks that heavily involves browsing web), and i also started to use mouse wheel for scrolling windows in emacs.

My Reading Experiences of Emacs Tutorials

Some personal experiences on tutorials and documentations related to emacs.

I started to use emacs in 1998. (i was a expert user of BBEdit since ~1992, and a beta tester from about 1997 to 2001. You can see my name in BBEdit's credit screen.)

The first tutorial i read is the bundled tutorial (Call help-with-tutorialCtrl+h t】).

This tutorial is the way to get you started with emacs from the ground up. It in written in 1980's mindset, gets you started to learn all the emacs ways and terminologies. It is not a practicality oriented one though.

Once you've read the bundled tutorial, you'll know about Emacs info and how to use its navigation keys, which lets you read the whole one-thousand pages of emacs manual.

[see Emacs: View Info Page]

The emacs manual is a bit quaint today, but it is very well written and complete. It is systematic, topics well organized, jargons are well defined and has several comprehensive index, the writing is clear, is well cross-linked. The technology used for the manual, the texinfo, is a excellent technology at the time. It has hyperlinks preceding its popularity in HTML by maybe 10 years. (one can think of it as plain-text system with hyperlinks and document hierarchy/paging and navigation shortcuts) The writing quality and content of emacs manual, is far better than most Open Source docs such as Perl, Python, Apache , unix man.

[see documentation idiocy collection]

The only drawback today, in my opinion, is that its largely written in the 1980s, using terms and jargon that today are not used elsewhere, verbose, and often has sections that discuss systems that are obsolete for 20 years.

[see Problems of Emacs Manual]

The texinfo format is also rather obsolete and irrelevant by today's computing landscape.

[see Emacs Should Adopt HTML as Texinfo Replacement]

Sometimes in 1999 i also read Learning GNU Emacs by Debra Cameron et al. This book is more practicality oriented (as with most commercial tutorials), and it did gave me a good intro. (The book now is in 3rd edition, published in 2004. Buy at amazon )

My Experiences with the Dvorak Keyboard Layout