In Defense Of Emacs

When I use Linux, I almost always use emacs, even though the usual alternatives are at my disposal. Among my friends, I am apparently in the minority on this issue. I am the only person I know of who chooses to use emacs. In fact, just to drive the point home, I'd even say that if there were no emacs for Linux, I'd think twice about using Linux.

Most of my friends use pico. Pico is not the worst text editor in the world (that spot would have to be reserved for vi), but am I the only one annoyed by the fact that I can't seem to use the mouse to position my cursor or that cutting and pasting don't seem to work like they're supposed to? Is there an option I'm missing here? This works fine in emacs...

A significant percentage of my collegues laud the virtues of vi. To this day, I still don't see the appeal of this program. I don't understand how people can use a application whose name harkens back to the days when "visual" text editing was still a novelty. I don't understand how people can praise a program where deleting a mistake, moving the cursor around, and inserting text are all done in different modes. The lone edge vi has to offer is it's size: it's very small. To those who consider this an actual advantage, I have just one word: upgrade! The 70's ended when the 80's began.

The usual gripe I hear is that emacs takes up to much memory. This complaint is usually associated with the quip (only half meant in jest) that emacs is really an acronym for eventually malloc()'s all computer store. The gripe is half justified; emacs does take up more memory than your average lightweight text editor. As for the notion that it takes up too much memory, I suppose this depends on what you're trying to accomplish. After all, most people don't slam a graphics program for being a memory hog. It's all part of the package. The extra memory is needed to do its job. By the same token, emacs is more than just your run-of-the-mill text editor. In addition to ordinary features like automatic syntax highlighting and automatic indentation while you type, emacs provides facilities to check your spelling, read your email, read your newsgroups, surf the Wold Wide Web, keep a diary, display a calander, mark important dates, run a shell, run programs from said shell, compile and debug your source code, automatically generate boxed comments, check out and merge files from CVS repositories, act like a psychotherapist, play the towers of Hanoi, plus a million other little tidbits, all from directly inside the editor itself.

Add to this the fact that every single one of these features is insanely customizable and you have the makings of an extremely powerful tool. Such power requires memory. Emacs is not just a text editor, anymore than a computer is just a calculator. It is a powerful Integrated Development Environment (IDE) with features that put many other IDE's to shame. A person with the appropriate skills can conceivably spend his or her entire day in an emacs window without ever feeling constrained.

In the spirit of objectivity, I will throw a bone to my enemies and admit that using emacs for something like spot text corrections is like using a rocket launcher to kill a fly. But using emacs just for text editing, without taking advantage of all the modes and features available, is like using Matlab to help you with your Grade 4 arithmetic homework. It is something you only attempt when you have memory to spare. Or if you don't know vi :-)

With the development of advanced IDE's, some people might claim that emacs is now obsolete. As far as the first part of this statement goes, the second part is partly true. The problem is that there are precious few advanced IDE's available for Linux that are as stable as emacs, that posess the same flexibility and that aren't in version 0.1. As little as 5 years ago, the situation was even worse. Emacs was really the only choice of profesionals who wished to get any work done on Linux systems and who did not have a fortune to spend.

This is slowly changing, of course. IDE's are becoming increasingly available. I hear that CodeWarrior is pretty good. There are apparently others.

Of course, none of these IDE's will let you read your mail, or post a newsgroup message, or keep a diary. They won't let you play a game if you want a break. They're of little value if you want to edit a TeX file efficiently or if you want to check your spelling. People are always touting the value of "all-in-one" software. Emacs takes this concept to new heights. In the end, it is my belief that emacs will continue on as the IDE of choice for people who are serious about programming big projects on a UNIX system.