» tagged pages
» logout
Emacs

Tags Applied to this Entry

1 person has tagged this page:
Modernization of Emacs
Full article at

http://xahlee.org/emacs/modernization.html

---------
excerpt:

Q: Emacs's ways are technically superior. It should not change.

A: Emac's user interface, when compared to modern software application's user interface, is complex and unusual, however, there's no basis whatsoever of it being actually a superior design with regards to any sensible metrics. (in fact, much of emacs's user interface are due to historical reasons. That is, how computers are in 1980s.)

For example, let's consider emacs's system of keyboard shortcuts. For a keyboard shortcut system, we might judge its quality based on several aspects. Here are some examples of consideration:

* Is it easy to learn? (is it familiar to most people?)
* Is it easy to type? (is most frequently used commands easy to type?)
* Is it easy to remember?
* Are more frequently used commands have the easier-to-type shortcuts that less frequently used commands?
* Are most frequently used commands all have a keyboard shortcut?
* Can the shortcut system somehow be consistent and extensible to cover other user defined shortcuts?

Emacs's keyboard shortcuts system, satisfies the last aspect very well (being consistent and extensible), but do very bad with respect to all the others. Emacs keyboard shortcuts are perhaps one of the most difficult to learn among software, and is also one of the most difficult to remember. The worst aspect of emacs's keyboard shortcuts, is that it is ergonomically painful. (Many emacs-using programer celebrities have injured their hands with emacs. (e.g. Richard Stallman, Jamie Zawinski), and emacs's Cntl-x keyboard and Meta-x combinations are most cited as the major turn-off to potential users among programers)

Computer keyboard is a hardware interface, and the mapping of commands to the key press combinations can be considered from a Operation Research point of view. The keyboard hardware itself can be designed with consideration of ergonomics (that's why we have split and curved keyboards), but consideration of what functions to map to what key presses is also non-trivial if the software has large number of functions, or if the software is mission critical, or the software is used for repeatitive, long durations of human-machine interaction (such as data-entry). Think of it this way: consider a airplane cockpit, filled with knobs, dials, buttons, and switches. Now, if your job is to map the airplane control functions to these switches, what are the things to consider for a optimal map?

If we take careful consideration on creating a keyboard shortcut system for emacs, it is actually easy to create a system that is superior in some pure technical sense than the ad-hoc Emacs's ways.

Aside from keyboard shortcuts system, other user interfaces aspects of Emacs are also questionable. For example, one major aspect of emacs operation is that it uses a single window for multiple purposes and files. Emacs is this way not because of a design decision, but rather due to historical reasons. Computer resources in the 1980s are very limited. When emacs is around, graphical system of showing “windows” is not practically available, and the emacs's method of using the screen (the monochrome text-only monitor) for presenting multiple tasks (“buffers”) is actually a very advanced user interface design not available in software of that era. When graphical systems becomes practical in the 1990s, drawing a window still takes a lot memory, and opening multiple windows is slow and inpractical.

Modern software interface (say, post 2000) usually uses one window per file (or task), and or show tabs if multiple tasks are represented in a single window. However, in general, emacs doesn't provide the tabs visual clue and still remained its old way of using a single window for all files and tasks as its standard mode of operation. As far as user interface design is considered per se with respect to today's computing standards, the emacs's way is inferior because it is less intuitive. Arguably, emacs's operation methods may be more efficient for expert users. 20 years ago, efficiency for expert users may out weight the ease of use for majority of average users. But in today computing era, computers are standard tools in every household, efficiency and ease of use for general users is as important for professional users. Even for professional users, it is openly questionable that emacs's ways of operation induced by its default user interface allows faster or more efficient operation than a user interface based on modern software conventions.
Username:
Password:
(or Cancel)