Before the browser wars (Internet Explorer vs. Netscape vs. Firefox vs. Opera and so forth) and the platform wars (Microsoft Windows vs. Apple Macintosh vs. LINUX and so forth), on a humble playing field of early digital astroturf there were the editor wars. I refer to the battle between the simple and nimble vi which was championed by the UC Berkeley camp and the heavily feature-laden "everything-but-the-kitchen-sink" world of emacs as championed by MIT. This battle is still ongoing, but lacks the glamour of the early years of computing. At the time, we didn't have thousands of applications to create with—the text editor was probably the most sophisticated interactive application to be used on a daily basis. After all, you couldn't do much on the computer back then except edit text.
For those with OS X machines, you get vi and emacs out of the box. The one thing you should notice, that is same back then as it is now, that when you type 'vi' from the Terminal application, it quickly comes up. However when you type 'emacs,' you have to wait a bit longer. I just tried it on my G5. The difference is less noticeable on the faster computers today, but it's evident if you are the careful observer. Emacs takes longer to load because it does so much more than vi. Woah. That's a dangerous thing to say. Some would argue that vi does things just as good as emacs but without as much bloated code. If you have a few hours to burn, and you've never run these two applications, I suggest that you learn how to use these applications as the skills you will pick up can make you feel like an early settler of the Wild West. Recent versions of these editors have been tainted by the whiz-bangedness of windows and mouse-based interfaces—I suggest you avoid these variants at all cost and instead go camping for real.
Having grown up at MIT I was always trained to be partial to emacs. There was certain pride in knowing every arcane invocation of holding down the control key and chording through sequences of keys. In my later years I picked up vi and loved it for its simplicity. But for all of emacs complexities, I loved one little feature that came standard (I say this because it's possible with vi as well but requires a tiny adjustment). That features is "transpose character." If you are tpying something, like I have typed just now. You just back up to the error tpying, hover over the y and hit Control-T on your keyboard and you get typing. Microsoft Word does this automatically for some words when you mistype certain sequences of letters, and Apple's Xcode environment has some emacs lineage and supports this tiny but useful feature.
I wonder what the analogy in the graphical editor world is. I've always thought this "transpose character" addresses a ubiquitous artifact of the typing process. We always make the common msitake. Just a snap of our fingers and the situation is corrected. Are there similar things we can imagine in the visual domain? I continue to wonder.
Original high-tech adopter Gerry Hornik adds the interesting historical note, "Way back when, around 1978-1980, DEC introduced its word processor, the DECmate. That system, which used a character-cell video terminal, the VT78 and then the VT100, had one of its few numeric keypad keys dedicated to the same 'transpose character' function, because Jack Gilmore, the inventor and manager of word processing at DEC, considered it one of the most important functions to support high-speed text entry." In addition I recall keyboards that add the 'hyper'- and 'super'- keys in addition to the 'control'-key. There were all sorts of way to chord key commands that made operating the computer a lot like playing the game Twister.
Posted by maeda at February 22, 2005 06:35 PM