NetBeans Java IDE 7.2 - Comments From An Eclipse User
Introduction
I've been using Eclipse for Java development for over 5 years. I'm currently using Eclipse 3.7. Recently NetBeans 7.2 beta was released and I decided to give it a try. I'm working on refactoring/improving a large Java project that was written over 4 years ago. I'm adding Spring, Maven, unit tests and improving the projects flexibility and maintainability. I spent a day using NetBeans 7.2 beta instead of Eclipse to see how well I liked using NetBeans.
NetBeans Improvements
Faster
This version of NetBeans is advertised at being faster and I found that to be the case. I was never waiting on the IDE. Tasks that may take some time are run in the background so I can continue working. I don't know if NetBeans 7.2 is any faster then Eclipse 3.7 but it definitely isn't slower for the tasks I performed.
FindBugs Built In
This feature was very helpful. The old code I'm refactoring has lots of questionable practices. NetBeans with FindBugs built-in provides me much more information as I'm working in a class to identify code that needs to be redone. For example, the IDE flagged places where the code was using Hashtable. There were other places where the code was using StringBuilder but appending to the StringBuilder object a series of Strings (e.g. stringBuilderObject.append("String 1" + "String 2" + stringVar).
Delete With Find Usage
If I select a class for deletion, the IDE will give me the option of first searching for where that class is being used. In a large code base that I'm not extensively familiar with this can be very helpful. It will also search the comments through out the project for a reference to the class--helpful for keeping comments updated.
Maven Support
Build into NetBeans 7.2 is support for Maven 3.0.4. One nice feature I noticed is that if I select a test class and choose Run Test File the IDE runs the maven test goal just for that class. In Eclipse 3.7 I have to create a special build configuration to just run a single test class using Maven. Another helpful feature is a drop-down on the main IDE screen where I can select which Maven profile I want to apply when executing Maven goals (test, package, etc) from the menu system.
Summary
I liked NetBeans 7.2 enough that I will keep using it for a while longer. I've not found anything I did in Eclipse 3.7 that I cannot do just as easily in NetBeans 7.2. If you want to learn more about NetBeans 7.2 consult the references below.
References
- NetBeans 7.2 New and Noteworthy - http://wiki.netbeans.org/NewAndNoteworthyNB72
- NetBeans 7.2 Beta Release - http://netbeans.org/community/releases/72/
But for Android development Netbeans's nbandroid plugin is not yet good enough. That's the reason why I have to use Eclipse way too often. With Oracles lawsuit against Google neither Google nor Oracle cares about Android support for Netbeans. What a shame :-(
For me NB is better IDE with excellent MVN support, faster in new 7.2 version, easy of use with very nice features like Alt+Insert...
But the lack of some good plugins like the Android one force me to use Eclipse a lot of times.
After all, I don't love Eclipse, i don't like it but it is just work. And I don't hate netbeans at all, I just hate it's UI under linux, and I will not using it anymroe.
Basically Netbeans does the job, but lacks some features I regularly use in Eclipse:
- create a new method in other project (e.g. typing service.myNewMethod in webapps maven module, then I want the method to be created in service-interface in the business module). Seems that Netbeans cannot create missing methods in other projects that are opened in netbeans, because these dependencies are just as binary JAR-files included.
- the hibernate mapping file creation (hbm-files) exists, but is very rudimentary: just file and table tag is created, properties-mapping is missing. (and please don't tell me to use annotations, I want HBM-files for better separating of domain objects from persistence stuff!)
- small but annoying: you cannot unfold all open projects like in eclipse: you have to do it manually
- most annoying: local variables are not shown during debugging (!!!). so this gives netbeans the biggest bummer... (anyone can help here?)