Sol said:
The ability to use the program easily within a week of first installing it is nice. Also having the backspace, pageup, pagedown, home and end keys working could be considered more than fluff.
You know vi has a startup file? And that you can configure additional keyboard mappings if you don't want to use the "vi way" of doing things. Besides, the default mappings on a Linux box include all those keys - and their correct function - by default.
As for first-week productivity, this is what I used to tell the liberal arts people struggling to use email at Purdue (our online systems were all *nix boxes, either SS1000s or Sequent machines): "To start typing, type a vowel. If the one you typed didn't work, try another. To not type any more hit esc. To move around in not-typing mode, use hjkl. To undo something in not-typing mode use u. To save and exit type ZZ."
That's enough to be productive.
I don't think I can put it simpler than to say vi and all its spawn are evil, evil creatures which suck the usability out of computers and replace it with esoteric key stroke combinations which serve only to make half of the keyboard redundant.
So have you never tried emacs? I mean, if we're talking about esoteric key combinations, let's talk about esoteric key combinations.
You could equaly say that higher level programming languages are fluff. We could write everything in machine code if we really wanted to waste our time.
I could. The difference is, for an experienced typist and vi user,
everything can be done just about instantly. I can type an awful lot of characters in the time it takes for a mouse-y interface wordprocessor to performace marginally complex task, almost always enough characters to justify not wanting to lift my hands from the keyboard. Reach up, tap escape, type command. Hit enter, type "i", resume typing. Whoosh!
If you've taken the time to learn (as I did, since I had the choice of writing thousands of lines of code for my CS degree in vi or emacs), the level of productivity you can achieve is very, very high.
All programming languages have a place. C has largely assumed the role of assembly language programming, but I don't know many C programmers who would say that, because C exists, there's no reason to write Perl or SQL.
The idea that a software package needs to be completely usable out of the box is slightly preposterous as well. Ever see how much time engineers and draftsmen put in learning a CAD package? Or artists spend with photoshop/illustrator? Or how much time IT people spend trying to learn minutae about their operating systems and platforms? As with anything else, there's a great reward for becoming proficient with complicated software. I've found that often, the most complicated software is the most rewarding once I know how to use it.