For a long time I was enamoured by Forte For Java with their broken App theme. Then I gave up with Netbeans turning out to be lighter and swifter. Since that time I have been developing with Netbeans much to the amusement and sometime frustration of my colleagues who use Eclipse. I have worked with eclipse enough time to hate it. I hate it all the more when it gives me OutOfmemory error when I run a build using ANT. But I digress. The objective of this blog is not to make Netbeans look good by describing Eclipse as bad.
What role does an IDDE play in the development life cycle?
Most of the time an IDDE is linked with DnD type of programming suitable for GUI building. But an IDDE is more than that. The following are what I looked for and got from Netbeans (6 being the best till date).
1. No Spoon feeding - Let the IDDE make me write code related to business need and prevent me from templates and boiler plates. Netbeans does not provide different types of code templates like what Eclipse does. For ex. in Eclipse if I type test and use ctrl+space it gives me a lot of options. Netbeans does not do that. (10 for Eclipse, -1 for Netbeans)
2. The IDDE should be very responsive. A user action should result in near-immediate response. For ex. If i do a ctrl+space, my IDDE should not go into a Zombie state and hang for a long time or worse crash. (10 for Netbeans, -1 for eclipse)
3. Bare platform should be sufficient. It is wrong to assume that a desktop/library developer would not be needing web components. In Eclipse you need to pull in plugins and additional things, cross your fingers, toes, hands and legs and pray that this would work. Netbeans gives it to me without much ado. - No plugins needed. (10 For Netbeans, -5 for Eclipse)
4. User Interface and accessibility. Less said about eclipse, the better. Sad part is NB6 has moved a little in the eclipse direction. Most of the key board short cuts have changed and it needed some trying around to figure out how to get the NB 5 Keyboard mappings. Eclipse Debug window is a pain. To add a watch statement, I need to right click on the breakpoint and select a menu option. Pain!!!
(Would have given 10 to Netbeans but they deserve to be punished for the Key mapping fiasco. So for this I give 5 to Netbeans and -1 to Eclipse)
5. Bloated workspace: I hate the concept of the workspace in eclipse. Every time I create a workspace, I need to give a lot of MBs for the .metadata folder. Check the properties of that folder any time and you would wonder, why do I need plugins in my workspace when my eclipse installation has it. Change settings in the workspace and when I move to a new workspace, I need to change the same settings again? Why? In my 10 years of working with technology I never found a need for such a feature. Netbeans use XML to maintain the information instead of copying needed plugins to the workspace. Infact there is no concept of workspace in netbeans. (10 for Netbeans and -1 for Eclipse).
6. If there was one feature in Eclipse which I liked very much was the CVS feature. Netbeans 5 was pathetic in terms of diff, commiting etc. But with NB 6, Netbeans has thrashed eclipse soundly. ( So 5 for Netbeans and 10 for Eclipse for getting it right earlier)
7. Web tech debugging. Ever tried debugging a JSP in Eclipse, by just setting your break point and invoking the debugger. In Netbeans I just need to do that. The time I saved by NB Debugger feature is legendary. (-1 for Eclipse, 10 for Netbeans). I would have given -10 for this feature to eclipse, but did not since it would seem vengeful.
On a final note - Netbeans should be watchful that it does not fall into the trap of Eclipse of being unwieldy with nice features that dont work.
So total Score
Netbeans : 49
Eclipse : 9