Wednesday, August 20, 2008

NetBeans: Pretty Much Unusable

NetBeans Pretty Much Unusable
If you care about NetBeans and its performance, an interesting development occurred over the last 24h on the nbusers mailinglist. It seems the upcoming 6.5 release sparked a debate claiming that it's pretty much unusable. While I wouldn't go that far, there is actually some truth to the matter as experienced by my colleagues and I.

A little bit of history
I've been back and forth between various IDE's over the years, coming from Visual Studio (VB/C/C#) I've been rather spoiled in regard to syntax highlighting, code completion and debugging. In fact I remember back in 2001 how I was convinced into doing a college project in Java, primarily because of the assistance offered by Visual Studio J++. At that time, no tool provided these kind of features (although Forte and JBuilder tried).
In this day and age, things looks quite different of course. SUN finally realized that it's worth having great tools (some would argue they have to solve the problems at the tooling level, since the language has effectively gone stale). In any event, todays Java developers can rely on pretty much the same features as Visual Studio. However, for this there still is a price to pay.

The paradox of choice
Having choices is generally a positive thing. But when it comes to software, having too many choices quickly becomes a burden - less is sometimes more. The problem with having multiple IDE's is that, apart from handling of java source files, they aren't really compatible. They all use each their own build system, supports different layout managers etc. so in reality you can't just switch from one IDE to the other. Given the love for committees in the Java space, I do not understand why a project standard was never established through a JSR. In light of this, it becomes rather important you and your project team settle on one IDE that hopefully satisfies everyone.

We chose NetBeans
After initially having used Oracle's JDeveloper for a number of years, we got fed up with the complex stack that Oracle pushed, as well as the semi-yearly releases. We had to live with bugs for a very long time and newer versions of the IDE could never really cope with migrating from the existing code base.
We chose NetBeans 5.5 after having had some success with Swing UI work (Matisse) as well as noticing how SUN were pushing for standards as well as de-facto standards such as Ant etc. Swing now also seemed to be better able to deliver a UI experience where you did not curse constantly at the lack of responsiveness or mismatched L&F. The best part of NetBeans is probably how we constantly get new versions (release, beta, milestone or daily) as well as the plugin community around it. However, not everything is rosy.

Why we might not stay
Since SUN decided to focus their attention on a polyglot of languages, performance seems to be hurting. Java and Swing always felt slow and overly complex to me... but that's subject for another blog post. In NetBeans 6.0 it really did get worse though. Often you would experience lag as you were typing, clicking tab or invoking a menu. It may very well only be 200-300ms but it is enough to be perceived as annoying. I believe it was in 6.1 where they introduced massive Action lazy-loading, with the end result that after NetBeans had started, the whole UI was effectively still unusable for 3-5 seconds.

Having tried 6.5 beta, I can't say I've experienced the gain in speed the new compile-on-save feature promised. Instead, NetBeans feels* even more busy and hence, less responsive to what I am actually trying having it do. I hope this will be sorted out because otherwise I might be compelled to try and move on to Eclipse or IntelliJ. The former always did run fast and smooth but I never really committed to it fully. The latter I have absolutely no idea about, except I keep hearing it's the best.

Is there a point to this?
No not really, apart from documenting the dilemma of choice and warn about the negative developing performance trend of NetBeans. I love NetBeans and the potential I've seen over the last year but productivity comes first. For SUN's sake I hope it will all be resolved, seeing as NetBeans 6.5 is now in beta 2, I doubt it will happen in the 6.5 time frame though.

*I should probably note that I by no means rely on slow hardware (Core II 2.66GHz/4GB Ram/10.000rpm HD) nor outdated software (Ubuntu 8.04 64bit with Sun's Java6u10rc JDK).
Post a Comment