Sunday, September 12, 2010

Eclipse vs. NetBeans

I spent several hours over the day today and last night putting together a Java program to process some mass spectrometry data into a different format. (More on that project another time.) Being that I don't get a lot of opportunities to work with the Swing framework lately, I decided to incorporate some GUI elements into my little program, just to keep my skills fresh. The big change for me for this particular GUI project was doing my GUI development with Eclipse using Visual Editor (http://www.eclipse.org/vep/). Before this year, much of my GUI development in Java was with NetBeans.

Before I offer my opinion on this matter, let me say right up front that, as soon as I started using Eclipse way back in 2004, I became a huge fan, right from the 2.x years. This lasted up until early 2008 when I made a switch to NetBeans, though initially that was only for Java development. For my C/C++ development, I continued to work with Eclipse. The CDT framework worked quite well for me, and always has. I used CVS extensively with both for revision management. I've tried UML plugins for both development environments, as I wanted to incorporate some introductory and advanced UML tools for my system design and software engineering classes. I have found myself once again switching back to Eclipse only because the new department that I'm teaching in is already deeply invested in Eclipse for their Java classes (though, that is likely changing in the near future. More another time.)

I won't even bother offering up a detailed comparison between the built-in features of each, as I simply do not have the time right now. (Perhaps during my winter break?). For Java development, there was a day back in NetBeans 5.x and early 6.x versions where Eclipse was a strong contender, and perhaps exceeded NetBeans in many ways. However, it is my opinion (and my opinion only, so send your flames elsewhere... or how did we used to say??? Send them to /dev/null :-) based on extensive use of both for pedagogic, research, and industry application development, that NetBeans is now, by far, a winner in the IDE development environment for all types of Java development. The Eclipse Visual Editor has a very long way to go in order to reach the sheer functionality of the development environment of NetBeans. The raw speed that I was able to put a small GUI application together with NetBeans showed me just how intuitive the interface was, and that was with already knowing the Visual Editor framework in Eclipse. Having been such a huge fan of Eclipse many years ago, I hate saying these things! But, I must express how pleasurable it was to use the NetBeans Swing GUI builder, particularly after becoming accustomed to the non-intuitive flow in Eclipse VE. NetBeans is easy, intuitive, and has much better integration with the overall IDE. It's code generation was, as the kids say, sweet, dude! For what I did, it was flawless. It worked great for managing properties of components, and was awesome for event handling, generation of callbacks, etc.

Let's not even get started with the UML tools on both. This argument is very subjective, and of course it depends on the plugins that you decide on with Eclipse. However, the NetBeans UML framework is amazing, particularly for Java development.(NOTE -- I'm aware that as of right now, NetBeans 6.8+ does not support the UML framework! I'm hopeful that it'll be updated soon. I wonder if this has anything to do with Oracle's takeover of Java? Grrrr...)

I had no problems with CVS on either platform. However, I'm changing to Subversion (again, due to departmental use). I've only experienced SVN with Eclipse so far, and I'm less than impressed with the interface.

I'm not ready to throw in the towel in the C/C++ development with Eclipse, but I've used both, and I can see that neither one is shouting to me as a clear winner anymore.

The bottom line -- for me, NetBeans is a clear winner for the majority of Java development projects. (I haven't used anything later than 6.7. I understand that 6.9 currently (as of 09/2010) does not have UML available, but that it is being worked on.) I can not think of any Java-based development project where I would opt for Eclipse anymore. I'm so sorry Eclipse! You got me through all of my PhD research with your C/C++ CDT plugin! Why couldn't you keep up with your Java capabilities? I'll still keep on using it for some of my development, only because I fail to believe that the Eclipse community will sit by and let NetBeans dominate. And, I'm sure there will be those that will wholeheartedly disagree with me.

1 comment:

Joe said...

Hi, former CS student at Bucknell and just came across your blog while trolling the internet (and getting spammed by Twitter). I would agree with you that NetBeans has eclipsed Eclipse (heh) but I'm surprised you've just left CVS (!?!??!) for subversion. You should take some time to look at Git for revision control (or Mercurial). My company finally finished pushing all our projects onto Git, and I have to tell you it's a beautiful thing. Gone are the 30 minute merges and commits of SVN. It's far better than svn and miles ahead of cvs, and really does away with many of the issues they have with merging and branching.

Good luck at Bucknell and enjoy it!