Recently, I decided to take a journey down the path of enlightenment.
One of the things I found so refreshing about Ruby/Rails when I first started using it was the simplicity of the tooling. Just use a text editor, no monolithic IDE with large memory footprints, slow load times, and a panache for crashing.
Visual Studio certainly is a great tool, and provides some powerful tools to .NET. But I doubt anyone would disagree with me that Visual Studio often feels like a 500lb gorilla. Especially when you add in the plugins so many use, like CodeRush or ReSharper. Simply opening TextMate was rather refreshing when coming from that kind of environment.
A few weeks ago, I had the chance to go to GoGaRuCo and they had a workflow panel where they got some of the well known developers up on the stage, and discussed some of the tools and arrangements they use. It was a little superficial, where it was “I have an editor with 3 panes and 2 terminals open”. But there were some interesting observations. First of all, everyone on the panel was using either Emacs or Vim. After the talk, they polled the audience what they use. The overwhelming majority of the audience was using either RubyMine or TextMate.
The surface argument you could make is that all the “hackers” are using Emacs/Vim and aren’t representative of the population. Sure, I looked at it that way too. But a few things started to peak my interest, particularly when I’d talk to an Emacs or Vim user. You will almost always hear them say they’ve been using it for 10 years, 15 years, or sometimes even longer.
Think about your toolset today and your toolset 10 years ago. Is there anything that you’re still using? If so many people will stick with the same tool for 10 years, spanning technology bubbles, and crossing over to new languages, there must be something that tool is doing right. These are tools whose users invest in them. They’re like marriages.
So my journey to enlightenment has begun with looking at Emacs, however I’m not just playing eenie-meenie-miney-moe. Both Emacs and Vim have large followings are both excellent choices. The way I see it, I can’t chose which direction to go without looking both ways. So, I’m trying both for 1-2 weeks each, play around with building my .emacs and vimrc, and see where it leads.
I’ve been using Emacs for almost 2 weeks now, and find myself opening stuff up in TextMate less and less. Next week, I plan to focus more on Vim and try it out.
But I think the true enlightenment that can be found is… the elite tools are not what the “hacker” portion of a community use. Use what fits your style best, understand why you’ve chosen your tools, and recognize those same decisions in the tools used by those around you.