As seen on reddit: an old Bill Joy quote often banded about as part of the (largely synthetic) vi-vs.-emacs holy war starts as follows:

vi was written for a world that doesn't exist anymore

The context of that quote is:

I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough.

9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think.

(source: the register).


unless you decide to get a satellite phone and use it to connect to the Net at 2400 baud, in which case you'll realize that the Net is not usable at 2400 baud.

You don't need anything as esoteric as a satellite phone: a cellular mobile phone will suffice. I've no idea what the effective/equivalent baud rate of GPRS is (or EDGE), but I have a new-found appreciation for vi's design goals having tried to run an SSH session over such a connection.


comment 1
IIRC even plain GSM dial-up is at least 9600, EDGE is on order of megabits. However the issue is not just about bandwidth, but latency. Anything wireless has poor latency and when combined with advanced queueing the mobile networks need to use, you can easily have several hundred millisecond. Which makes anything interactive barely usable no matter what the raw bandwidth is.
Jan Hudec,
comment 2
I agree entirely.. I've often found vi to be an excellent interface to work with when using my mobile. I also prefer to use it on the desktop, since I like to stick with the keyboard most of the time - not a fan of these new-fangled mouse thingies ;)
crispygoth [],
comment 3
Try jupp (packaged in wheezy/sid) over a slow line some day. It even has a -baud option which changes the screen update algorithm when set lower than 9600. (Also, hit ^Oh or edit jupprc to disable syntax highlighting.)