Recently at work, we’ve been discussing NetBeans as our “standard” development platform. Personally, I had switched off of it several months ago to use TextMate, but I’ll get to that in a little bit.
What prompted the switch from NetBeans was all the little papercuts it had - long start up time, poor support for Python compared to other languages, weird syntax highlighting (that completely breaks when using something like Jinja templates), and a bunch of other things. So we started looking around for some alternatives.
Our two main criteria were that it must be cross platform, and it must have Subversion support.
Before I had started here, they had tried Eclipse and didn’t like it (I don’t know their reasoning) and moved to NetBeans. Now, because of the quirks listed above, and the fact that Oracle’s future support for it is questionable, we’re looking around. So far the only proposal has been Komodo, which I’m trying out before I can say too much about it.
My main issue, though, is that this ignores the point of the tools.
Any tools you use should be used because they allow you to be more productive. That’s really at the heart of the issue. If you’re more productive in Windows and Word, then you probably shouldn’t buy a Mac and get Pages.
For myself, the tools that are the best are the ones that don’t get in my way. TextMate has all the power of the IDE, but it’s not thrown in my face and put in my way. It’s extensible through bundles, supports tons of languages out of the box, and is just all around nice to work in. Hell, I’m writing in it right now.
But, it’s not cross platform, which I do admit can suck sometimes, but not enough for me to drop it entirely. Instead, I’ve made sure I learned enough of VIM to be able to survive on a machine without OS X. No, it’s not VI, but I had to draw the line somewhere.
Same goes for the command prompt - I like using that with the other tools (Subversion, Mercurial, etc) because it stays out of my way. Yes, remembering the commands is a little arcane, but it’s faster that the GUI for me and I can usually get exactly what I want done with minimal effort.
Finally, I’ve been playing around with Mercurial at home instead of with Subversion like at work. Subversion’s branching mechanism are a major headache, and merging from one branch into another is a time consuming and manual process. While I have yet to do much with branching and merging in Mercurial, I’ve already found instances where it’s better than Subversion - like monitoring for commits, updates, and changes in the entire code branch, not just the directory you happen to be in.
Ultimately, though, this is all a lot of masturbatory talk - if the tools aren’t being used to make something, all those features and comparisons don’t matter.