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.

Friday, September 10, 2010

Crisis in Computing

There is a real opportunity here for those of us in CS to ramp up the research opportunities in high-performance computing. The author expresses deep concern about the U.S. losing its prominence in HPC. I can't say that I disagree at all. His one quote essentially summarizes the U.S. role in the computing sciences over the past 10-15 years. He states
So, you’d think we’d stay on top of our game. Instead, we’re getting jumped by moves we invented.
This has been happening for many years, in a large number of industries. And... it's nobody fault but ours. The private, public, and academic sectors collectively and separately have lost a tremendous amount of momentum in computer science research. It is going to take substantial funding and innovative minds willing to sacrifice big money opportunities for a while in order to focus on these enormous opportunities, and help us catch up. You can't rely on the public sector, because they only care about making sure they maximize their quarterly profits. They probably will not be willing to sacrifice the type of funding required here. The majority of the big players in the private sector, despite being a valuable source of novel ideas needed here, are too limited in their funding opportunities, and when substantial funding does arrive, usually it is in the form of a buyout. That leaves the academic sector, which has been hit rather hard by the economic downturn. Funding opportunities will either come from large corporate interests (see above), or the government. Though the government has been a little more generous than it was in the previous administration, it still leaves us with need. Regardless, we don't have a choice. We need to start thinking outside of the box and jump on these opportunities and be willing to make some substantial sacrifices in the immediate future. It is the only way we as a country can possibly recover and become a formidable player in computer science once again.

On a related note... so many colleagues love to bash Microsoft. Yes, they have put out some shoddy software in their past. Name a software company that hasn't, and had the scope and user base that MS had. More importantly, who represents one of the biggest players in contributing enormous amounts of money toward computer science and philanthropic interests? At a time when we see so many greedy CEOs hoarding hundreds of millions of dollars to build their own interests, it is wonderful to see what the Gates Foundation has and continues to do. We need more of those that "have" that are willing to shell out their own hard earned money for many great causes.