I have been using emacs and the command line for now almost 20 years. Once in a while, I dip into IDEs, but always go back to the command line. My biggest gripe with IDEs is that it keeps me away from the actual build, and that I normally have to spend time duplicating building configuration in the IDE. The canonical source for build configuration should be the build system (Make, ant, maven, etc.). With an IDE one would have to always be things in sync, leading to errors and all sort of weird stuff.
But I keep trying looking for the holy grail. In the past, I've been relatively happy with Eclipse for the odd refactoring job. I would fire it up, fix, and close it, back again to the command line.
This time around, I wanted to see if an IDE would make me stop using emacs. I set myself a few requirements:
- Auto-complete. Not intellisense crap. Basic emacs completion is enough.
- Maven is the source. I don't want to keep a parallel reality when maven poms have all the information already on it.
- Unit testing. I want to run and debug my unit tests from the IDE.
- Basic re-factoring, especially code usage reports.
- Light on resource usage.
I looked into IntelliJ IDEA 8.1, Netbeans 6.7 and Eclipse 3.5. Here are my findings.
I got an evaluation license and only used it a few days. IDEA is a fantastic IDE, and despite high memory consumption, it felt light-weight and kept the system very responsive. In principle, it met all the requirements, and the refactoring support was simply the best out of the lot. However, at some point things started to go wrong:
- Compilation errors. Cannot find symbol, although running maven from the command line would not throw any errors. I did not want to spend figuring out what was wrong here. I am sure some IDEA expert would have told me I was doing something wrong, or that some configuration had to be changed. But IDEA was already failing the requirement: maven is the source. I don't want to fiddle around with the IDE settings.
- Mercurial integration problems. The plugin kept on throwing up and breaking the environment. I had to uninstall it, but that's really a minor point.
Then came Eclipse. Overall it looked good, but there was no Maven support out of the box. I tried installing Q4e, but getting JUnit support in debug mode was just too painful. m2eclipse worked fine, and Eclipse met all requirements with it.
Netbeans was last. I've never liked Netbeans. But I did now. A lot.
But most importantly, Netbeans did not get on my way. I did not have to configure anything to get going. It was like using emacs, but with all the goodies.
I am going for Netbeans. IDEA looks good, but I am not sure I would pay out the license fee for the powerful refactoring features. Others might, but I probably won't. Eclipse was also improved, but having to fiddle with plugins to get Maven support was really sub-standard.
So, it is Netbeans.
blog comments powered by Disqus