Reasons for switching to NetBeans
April 11, 2006 27 Comments
And a few thoughts on comparing NetBeans with Eclipse…
Download size: NetBeans = 58 MB, Eclipse = 103 MB [update 2006-04-19: Roumen says that NetBeans 6 on JDK 5 gets even better…]
NetBeans has built in Java EE support, most importantly the XML editing and JSP editing support. No more hunting for plugins. If you download the Eclipse WTP (Web Tools Platform) it is 180+ MB! wt?
The NetBeans profiler plugin (10 MB), you can actually drill down to method execution time and object memory usage. I use the Profiler in conjunction with JMeter and it is truly useful.
Pure Java. This is of course a major point of debate. I side with the Sun camp on this one : )
- Write Once Run Anywhere matters. For example a lot of SWT porting effort would probably be needed when Windows Vista (finally) arrives. [update 2006-04-22: added this comment]
- Swing is mature and getting faster and better. Mustang is looking quite good as it evolves.
Improved plug-in development / RCP model: Earlier one got the feeling that the plug-in model in NetBeans was an afterthought. But the NetBeans folks appear to have spent some time on this front and of late there have appeared some compelling tutorials on how to create NetBeans plugins or whole applications on the NetBeans rich client platform. Matisse is not a big deal for me, I don't do much Swing work. But knowing that I can design the GUI using Matisse, if I ever get down to writing a NetBeans plug-in feels right.
Ant used natively by NetBeans: A lot has been said on this especially the fact that you can run the generated script outside of the IDE, but I'm not too impressed with the auto-generated stuff. I prefer to write my own Ant script and be in total control :) NetBeans does support a "free form" mode for your custom Ant script, which works great even for Java EE web application projects. NetBeans allows you to call named targets in your Ant script and link them to menu actions such as build, clean, run etc. You can even fire ant targets specifically on files that you have selected in the package explorer window – for example I can run Checkstyle on only a single file on demand or run JUnit along with EMMA code coverage on a single file. Finally it is easy to add menu or toolbar button shortcuts to any of your Ant targets – I use this feature a lot.
Flexible project customization options: In addition to the Ant extensibility mentioned above, you can point your project definition file (nbproject/project.xml) to a properties file which can be even shared by say your custom ant script. I use this approach to control the build classpath within a single properties file and thus avoid updating my IDE project settings when library JARs have been added or upgraded. I hope to post more on how I integrated Maven 2 into my NetBeans environment soon…