Java News from Thursday, June 30, 2005

The Eclipse Project has released Eclipse 3.1, an open source integrated development environment (IDE) for Java. Eclipse also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. The main new features in 3.1 are improved Ant support including a debugger, quick fixes for serial version IDs, rich client platform (RCP) wizards, and support for Java 1.5.

The release of Eclipse 3.1 inspires me to make public something I wrote privately to Tim Bray, now a Sun employyee, a couple of days ago. He had written on his blog, "To be honest, I wondered whether all the NetBeans happy talk you find around might be partly comforting Sun-to-Sun cheerleading." Bray thinks no, but I think yes. Here's what I wrote him:

From where I sit on the other coast it very much looks like all the NetBeans happy talk is comforting Sun-to-Sun cheerleading. I think i can confidently say I have not heard from one single person outside of Sun who uses NetBeans in years. In fact the last time I actually remember meeting programmers who used the product was when it was called Forte and the competition was less strong. This goes across mailing lists, blogs I read, people I meet at user groups, consulting clients, students at my university, etc. I have never met one person outside of Sun who has told me they use NetBeans.

The majority of people I know using an IDE use Eclipse. When someone talks to me about their IDE, they talk about Eclipse. I get frequent, unsolicited e-mail about new Eclipse features and plugins. When I ask completely unrelated questions about subjects like profiling or GUI design, I often get answers that involve Eclipse. I never get an answer that involves NetBeans.

I also hear occasionally about IDEA. There clearly aren't as many people using it as there are using Eclipse, but there's a significant community of committed users out there. I don't see anything similar for NetBeans outside of Sun.

I do a lot of work on the Mac and I also know developers using XCode to write Java. I do occasionally hear a few questions on the Mac mailing lists about getting NetBeans to run on the Mac, mostly in frustration after the user has failed to get it working. Few if any of these potential users seem to stick with it. Most switch to Eclipse or XCode very quickly.

I've tried NetBeans several times myself and it strikes me as clearly and obviously not ready. It can't even get the menu bar in the right place. I mean that's the most basic first thing a Mac user looks for. An application that can't do that goes right in the trash bin. But I soldiered on. I have yet to get NetBeans to check a project out of CVS. As near as I can tell the CVS support is completely, absolutely broken; and has been in every version I've tried up through 4.1. Integration with source code control is one of the main reasons I use an IDE in the first place. If you can't do that, you have no chance of getting me to use the product. Eclipse's CVS support isn't great. In fact, I'd classify it as barely functional; but it is usable, if only barely. NetBeans isn't even barely usable yet.

Mostly I give up on each new version of NetBeans after discovering that CVS is still broken, but recently I tried 4.1 on a project on my local hard drive. Within minutes, NetBeans was completely hung and nonresponsive, so I trashed it yet again and went back to Eclipse. Maybe 4.2 will finally become usable enough to consider, but I'm afraid it's very obvious to pretty much everyone outside of Sun that NetBeans isn't worth the struggle. Eclipse isn't perfect, and it may well not be the best IDE you can buy, but it's good enough to get the job done. NetBeans isn't.

Tim tells me he's hearing from others about this too, and will write more on the subject soon.

Bernhard Fastenrath has posted GetOpt 0.94, an open source library that parses command line options such as -d, --help and -version. The command line options and responses can be stored in XML. Version 0.94 removes Mac OS support and changes the license to GPL. java 1.4.2 or later is required.

Gaudenz Alder has released JGraph 5.6, a free-as-in-speech (Mozilla Public License/LGPL) graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. Version 5.6 improves the expand and collapse functionality and fixes bugs.