And yet, the guy is now happily using vim. Surely there must be an incremental route between 'using vim wrong' and 'using vim right' that doesn't come with a drop in productivity? If not, what's wrong with the app?
Something that I found odd: he seems to grok the transactional thinking.
I've seen plenty of people who only dip their toes in with vi and never get this. You feel the frustration when you watch them try to use it - pressing the 'x' key repeatedly, or navigating around whilst in insert mode.
I never knew about that ci" usage he mentions. Very handy.
You can make the drop in productivity relatively short (maybe part of an afternoon) rather than a week, but it's still going to be there anytime you learn something that's actually different.
If you pick up a new language (say) and are immediately fluent, have you actually learned anything?
Nothing...it's that the app sacrifices new user accessibility for a more powerful editing paradigm. It requires a dedication to productivity from the user that pays off in the long run.
I think part of the reason that vim and emacs are so powerful but also so hard to learn is that they were created before we had nice homogenous operating environments with a standard 108 key keyboard and Graphical User Interfaces.
They both come from a day when all UI's were text based and so it's not surprising that they offer more powerful editing models than newer alternatives, considering they've both had 30 odd years of refinement.
It's also understandable that people find them more difficult to use. The major advantage that a GUI has over a text interface is that it's more discoverable and given that most people these days have grown up around GUI's, we thus find text based UI's intimidating.
Either way, as developers, most of our day to day tasks revolve around editing text, so I'd say that using a tool that's aimed at giving us maximum textual love is a good thing.
The main issue is that any text editor which is sufficiently advanced will be far removed from the standard CUA + GUI model that most people are used to. With such a separation, everybody has to start at ground zero when learning the new editor. CUA modes are the only sort of learning-curve helper that I can think of, but that doesn't help much because then people just keep their dependence to CUA. They have to immerse themselves in the editor to actually learn it; not get caught up in a "compatibility" mode that makes it easier to use when they start.
But why must powerful editors be far removed from CUA? As I see it, the only reason emacs/vim aren't CUA is that they were written before CUA existed. Couldn't an editor be made, with the same power as emacs/vim, but that did take advantage of all the modern things we've been accustomed to?
And don't get me started on asking why, after all this time, emacs still defaults to non-CUA when it has a perfectly good mode that emulates it? That's just asking to keep new users away.
I am getting conflicting messages - Yehuda Katz seems to be having a lot of success with the incremental method. I like the phrase 'dedication to productivity' though - sounds dead noble, like how a Samurai might use a text editor.