NetBeans and Eclipse Have Taken Different Routes.
After posting a blog stating that NetBeans' Swing UI toolkit makes it a more attractive IDE than Eclipse with its Standard Widget Toolkit, JAXenter caught up with NetBeans technical writer Geertjan Wielenga to find out exactly why this should be the case, and to discuss the possibility of a NetBeans/Eclipse integration.......
JAXenter: You recently posted a blog entry claiming that one of the features that attracts users to NetBeans, is that the platform uses the standard UI toolkit. What does this particular toolkit, add to the NetBeans experience?
Geertjan Wielenga: It's the standard UI toolkit. Typically, large organizations take standards very seriously. Practically speaking, as well, when porting an application to a rich-client platform, do you want to waste time learning a new UI toolkit or do you want to simply copy and paste your existing components into your newly adopted framework? Don't take my word for it. Read what actual NetBeans Platform developers say on the NetBeans Platform testimonials page about the NetBeans Platform:
"The added value is that it's Swing. Before the NetBeans experience, I had looked quickly at Eclipse RCP; at the time it was probably the only viable framework for developing desktop applications. But I hated the idea of learning a new set of APIs: Eclipse is based on its own SWT... and throwing away my knowledge, even though limited at the time, of the Swing APIs."
Fabrizio Giudici, Tidalwave, Italy.
"The NetBeans Platform's use of pure Swing (as opposed to Eclipse’s use of SWT means that integration with other products is seamless."
Dale Thoma, Saab Grintek Systems, contracted to the South African National Defence Force.
"I wanted a cross-platform application and the UI needed to be the same on all operating systems. This ruled Eclipse RCP out as it isn't Swing-based, but the NetBeans Beans Platform is."
David Beer, independent contractor, England.
"What we needed was the whole application framework, including menus,preferences, workspace system, windows and dialogs system etc, and it had to be Swing because our application is Swing-based."
Tonny Kohar, Skesta, Indonesia.
"With 'Matisse', the Swing GUI builder, you can visually design your components, which facilitates layout management."
Tanja Druke, Genomatix, Germany.
JAXenter: You also state that Eclipse's proprietary UI toolkit, in your opinion makes it an unattractive IDE – what is it about this particular toolkit, that you dislike?
Geertjan Wielenga: SWT (1) is not the standard UI toolkit, meaning that adopting Eclipse RCP means converting Swing components to SWT, assuming you've spent the time learning how to do that, (2) no longer has any performance gains over Swing, (3) requires additional libraries for each operating system, (4) is harder to modify and extend, (5) has far fewer external libraries than Swing with which to integrate.
JAXenter: You write that Sun has done a bad job of marketing the NetBeans Platform. Why do you believe this to be the case?
Geertjan Wielenga: Because it's true! NetBeans and Eclipse have taken different routes – NetBeans has sought to provide a very solid IDE that works out of the box, while Eclipse has aimed at providing a generic platform on top of which applications can be created. To Eclipse, their IDE is secondary, which has worked out great in terms of the adoption of the Eclipse RCP, since that's been the focus, but to the detriment of Eclipse IDE -- there are many projects contributed by various individuals and groups all contributed to Eclipse IDE, with few of them being tested in combination, so that it's often very hard to get started developing something -- because you need all the right plugins.
NetBeans, on the other hand, in focusing on the out-of-the-box experience, has put its framework (i.e., the NetBeans Platform) in second place. Makes sense in many ways, but has resulted in Eclipse RCP being far more widely known than the NetBeans Platform. That's a pity because the NetBeans Platform currently provides the complete package -- out-of-the-box support for both OSGi (de fact standard module system,) as well as Swing (standard UI toolkit.)
JAXenter: You call for Eclipse RCP to provide support for the NetBeans Platform. What form would you like this integration to take? And do you think we can realistically expect to see Eclipse RCP supporting NetBeans?
Geertjan Wielenga: Not that Eclipse RCP should provide support for the NetBeans Platform, but that Eclipse IDE should. There should be templates for getting started creating NetBeans Platform applications, e.g. for creating new modules, new windows, and new actions for NetBeans Platform applications.
I think this is a realistic request to ask of Eclipse IDE, since many NetBeans Platform developers use Eclipse (and/or IntelliJ IDEA) to create their applications.
The NetBeans Platform is a generic framework that doesn't require NetBeans IDE, so let's open up the development process to other IDEs and get more people using the best standards-compliant combination there is in the RCP-space: out of the box support for OSGi + Swing.
And who knows what the future will bring? Maybe JavaFX integration too?