Battle of the IDEs
I have always been a die hard Eclipse fan. Ever since the days of 2.1. A few years ago I started using the MyEclipse plugin to get hot-deploy to Tomcat. It quickly became indispensable to me and even when I started using maven and, what was then a very flaky plugin, M2Eclipse I persisted and wore the pain.
About 18 months ago I bought a Macbook Pro and my love affair with Eclipse and particularly MyEclipse plunged. I just could not seem to get a stable build. It would constantly crash…constantly. After many calls to MyEclipse and hundreds of different configurations I took the plunge an moved to IntelliJ.
Wow, what a lovely IDE. Smooth, everything just works (except the PMD plugin), but I kept feeling just a little bit dirty, just a little like I had sold out. As if forsaking Linux wasn’t enough, now I was forsaking my open source IDE! Also the use of space in IntelliJ kind of sucked. All the wasted space in margins makes it hard to use with multiple panels open unless you have a monster screen. I think most of that is due to the incredibly poor attention to detail in Java Swing UI components. Making a sexy looking Swing app is like walking over hot coals.
A little while ago I got involved in a project with a bunch of friends who were using Eclipse Ganymede without the need for MyEclipse. They were using the native functionality for hot deploy to the server. I was initially reluctant to go back to Eclipse after all the past pain but developing in different physical locations using different IDE’s really started to make some things more difficult than they needed to be so I downloaded Ganymede and gave it a go…
Rock solid on the Mac. I have been using it for the past few months without a single crash. The SWT UI is obviously a lot sexier than the IntelliJ Swing UI. The hot deploy is a bit of a pain in the arse to sort out when combined with M2Eclipse, but after a bit of tinkering around that is all working well too. The recent work on M2Eclipse has improved it out of site and integration with Maven 2 in Eclipse is now closing on what IntelliJ has had all along. The major down side is the SVN integration. Subversive is not bad, although a right pain in the arse to install, yet it is not a pinch on the IntelliJ native Subversion support. This is absolutely superb, the 3 way merge tool is brilliant, the ability to view annotations in your code to see who changed what, the constant monitoring of your repo all go to making it a pleasure to use.
I don’t have a conclusion on which is the best for me. I am back to using Eclipse almost exclusively and enjoying the experience but every now and then I really miss a feature from IntelliJ. I will download 8.0 when it gets out of Beta and have a look but it would need to provide some pretty compelling reason for me to switch back, mostly because most of the developers I work with are using Eclipse and the difference in IDEs can make some things difficult.