Are Vim and Emacs as powerful as their legend would have it or do the “lesser” developers, the “Morts” of the world, spend less time focused on learning their tools at the expense of learning their problem domain?
I read an old blog post from Brian Carper about learning Emacs recently:
Emacs isn't difficult to learn. Not in the sense of requiring skill or cleverness. It is however extremely painful to learn. I think there's a difference.
The key word is tedium. Learning Emacs is a long process of rote memorization and repetition of commands until they become muscle memory. If you're smart enough to write programs, you can learn Emacs. You just have to keep dumping time into the task until you become comfortable.
I’m willing to assume Brian is a clever guy; the fact that he writes books about Clojure is like a dog whistle for intelligent programmers. How long does it take?
Well, it took me over a year to be able to sit down at Emacs and use it fluidly for long periods of time without tripping over the editor.
So picking up on this specific time frame here is my hypothesis: perhaps it’s not something so special about the capabilities of an Emacs or a Vim – perhaps it’s this timeframe that makes for the types of productivity associated with these tools rather than the tools themselves?
A different way to think about it is to think of how many people using Visual Studio know more than a handful of the many shortcuts? How many a Mort really uses the Command Window to automate or interact with the tool? It’s always fun and enlightening to watch a person like Scott Hanselman using Visual Studio (how many talks have you been to when you picked up some keyboard shortcut that was your biggest takeaway?). It’s even more of an eye opener to see what is possible with the power of extensions such as Mads Kristensen’s Web Essentials.
Some closing thoughts on this open ended assertion [to mitigate the forthcoming beat down in comments?]:
I will be learning a little Emacs as a part of a MOOC I’m enrolled in, Startup Engineering. I hope to write a follow up post but if you do find my reasoning faulty for a lack of Emacs or Vim experience, what do you recommend I look for in the painful process of getting going?
Although I have used Visual Studio on a nearly daily basis for a long time now. I have not, however, spent more than a few minutes in a concerted effort to learn keyboard shortcuts or add-in programming. Any recommendations on getting better with the IDE at hand are welcome.
When Visual Studio is too large of a hammer, I use Notepad++. If you have any recommendations about Notepad++ or any other text editors (yes, I know Sublime is very popular these days) I’d love to catalog it from the comments.