Before I start, this on not meant to incite any religious wars. These are simply my own opinions. I’ve also just gone through 20 disturbing minutes with Eclipse and am not in a good mood. In an hour or so I’ll be calmed down again, and I can safely deny any knowledge of ever having written this. 😉
The simple way to program
I have been using vim+zsh+(perl,python,ruby) as my IDE for about as long as I can remember. It’s efficient and easy to use. Moreover, you get good control, as in you decide how everything should work. The more skills you have with your tools, the better the IDE works for you.
You get full plug-in support for any revision control system you want to use. All you have to do is type the commands in a shell, be it
bzr status or, if you are so inclined,
svn whatever. No worrying about whether such-and-such tool that you are used to works with whatever IDE. They all work, period.
Also, my preferred IDE does not require X Windows. If you have really old hardware, or if you are a sucker for user interfaces that make sense you can use vim+zsh+ppr without having to startx. It is fully functional over SSH sessions.
Did I mention “integrated documentation”? Use
info. If you have html documentation, standard plug-ins like elinks, lynx and w3m are all designed to handle that. For file management, zsh normally does the job, but if you have special needs in that department, mc (midnight commander) will serve you well.
The not-so-simple way to program
Just because everybody keeps raving about them, I also try out various graphical, all-in-one designed-just-like-a-monster IDEs once in a while. I must say I’m fairly happy with Netbeans apart from the fact that it is slow and consumes far too much memory. Apart from that, Netbeans feels fairly clean and well thought-out. If i were forced to program in Java, Netbeans might actually make the experience slightly less painful.
But of course, all the people you would care to listen to will tell you that Netbeans sucks. Instead you are supposed to love Eclipse. I have never actually been able to spend more than 30-40 minutes with Eclipse without feeling hopelessly stupid, old and out-of-touch with reality.
Now, I don’t mind if people love Eclipse, that is great for them. If it helps them to be productive, cool! And I do understand and appreciate the fact that Gnome folks will have serial orgasms over Eclipse simply because it uses SWT, which, if I’ve understood it well, is just a JNI wrapper for Gtk, which Gnome folks have been brain-washed into believing is *the standard*. I *cough, cough* prefer Athena and (Mo|Less)tif myself. But, hey, live and let live. Maybe if I had 200+ Gb of core memory I would love Gtk too.
What it cannot stand is when somebody, who is a happy Eclipse user, goes to say that vi is “too complicated”. Anybody who thinks vi is difficult to use but Eclipse is not deserves to be pushed head-first into quick-sand. Eclipse *is* rocket science. It even makes monstrosities such as Emacs seem simple.
I can fire up Netbeans and pretty much start using it immediately. If I need a plug-in, it is very simple to grab it. And Netbeans plug-ins have descriptive names. If I want mercurial support, I just get the mercurial plug-in.
Eclipse isn’t even an IDE. It’s some for of meta-IDE. You cannot do anything with it without the right plug-ins. And these tend to have such wonderful names as VE, WTF, GFYA, STFU etc. How the hell am I supposed to know what the hell VE is? Look it up you say? Okay, that’s minus one on the list of items that makes Eclipse superior to vi. You have to learn vi and you have to learn Eclipse.
If you want to do JEE development on Eclipse of have to install the POOFT plug-in, which is an implementation of the PIFFY meta-plugin, which in turns requires the ESAD meta-meta plug-in. The ESAD plug-in, in turn, requires the FLUNKY meta-meta-meta-plug-in. Unfortunately, it won’t install because it also depends on about 400 other plug-ins, one of which is the INFERNO plug-in, which doesn’t exist in a version compatible with the version of Eclipse you are using.
What about the others?
I refuse to comment on Anjuta or MonoDevelop because they are Gnome-related. If you criticize anything related to Gnome you will end up on a terrorist-list somewhere. I refuse to comment on KDevelop because if I say anything negative about it I will be accused of being part of a Gnome conspiracy to destroy *the* successor to CDE.
I haven’t tried ProjectCenter in an awfully long time, so I really cannot comment on it. Maybe I should set up GNUStep again one of these days and see how it’s coming along.