Sunday, February 22, 2009

The second coming of NetBeans

I’ve been a die hard eclipse user for several years now. A couple of years ago, I wanted to learn about some of the newer features of the Java language (my day job was pinned down to version 1.4.2 of Java – thanks BEA). I set out to work a bit with generics and also with the latest web service stack available at the time (metro).

I’ve been a long time listener of the Java Posse podcast and the topic of NetBeans and the new features it provides is a regular topic of discussion because one of the posse (Tor Norbye) is one of the key code committers on the NetBeans code base. I decided to give netbeans a new look since it had been years since I had last used it.

I started off by publishing and consuming a few web services using eclipse to get a baseline. I then downloaded the latest version of NetBeans (6.0 at the time – at the time of this writing 6.5 is stable and 6.7 is due out very soon). To keep things simple and to ensure that I had everything I might need, I chose to download the uber large version of the installer (couple of hundred meg download). I then used this version of the IDE to build a few web services as well as test consumers of the services. I came away thoroughly pleased with the experience. The IDE worked perfectly right out of the box and provided some very nice links for tutorials on the web which I found to be extremely helpful in spinning up on the new language features I was interested in.

I came away impressed but not sold quite yet. After all, most of what I had done was to build a couple of toy examples. The IDE performed beautifully but at work I was working with in a very large shop where everyone used Eclipse and I was able to complete the same tasks using eclipse (though I found NetBeans much easier to use).

During this same time period I’d been working quite a bit with Ruby on Rails using the Aptana plug-in for eclipse as my IDE of choice to work with Ruby. At the time it was working ok but was still pretty spotty with intellisense and getting the debugger to work had been quite a challenge. Several folks I worked with at the time had expressed an interest in learning more about Rails and so I decided to spin up a nice group project to give us all the chance to work and learn together. Several of the folks working with me on this pet project were brand new to eclipse and to Rails and they experienced considerable problems in getting a usable environment setup.

Given my positive experience with NetBeans in some of the Java R&D I had been doing, I decided to give it a try for Rails to see how well it would work when compared to my current eclipse setup. Since I had already downloaded the uber version of the IDE, I had everything that I needed for Ruby support. I was pleasantly surprised to find that NetBeans seemed to work pretty well right out of the box. My experience here was so positive that I immediately stopped using eclipse for my Rails work and switched over full time to NetBeans. During this time I also evaluated TextMate since everyone who owns a Mac says it’s the greatest editor ever created. I’m sure there’s no end to the number of people who would disagree with me on this but I just prefer a full featured IDE to an expert user editor. I still use TextMate on my Mac quite a bit for general purpose editing but not for writing code (if I really wanted to memorize all of those hot key combos, I’d just go back to the vi editor I used in college).

Now flash forward another year. Over the past week, I decided to learn a bit about Groovy since I hadn’t previously written any code using this language. I haven’t been coding much Java over the past 7 months (been working with .Net) so I decided to start out with a clean development environment. I downloaded the newest version of eclipse (GANYMEDE), groovy, the groovy plug-in for eclipse and followed the instructions on the main groovy site to set things up. I was able to create a working grails project but the IDE was giving me quite a bit of trouble in general (every time I move the mouse past the tool bar icons I get a null pointer exception from Java). Further, I was unable to set a breakpoint in a .groovy file (double clicking in the left margin did nothing for me). I fought with this for about 1/2 day before deciding to try NetBeans to see how it compared. As it turns out support for Groovy in NetBeans is still relatively new but it IS supported beginning with version 6.5. Since my old install was at this point out of date, I upgraded to the 6.5 release. Just like my previous two experiences, NetBeans just worked right out of the box. Even better, one of those nice tutorial links on the welcome page took me through something identical to what I was trying to do (calling from Java to Groovy and back again).

I hate to say it but… Three strikes and you’re out Eclipse! I’ll be using NetBeans for all of my Ruby, Groovy, and eventually Scala development. I also plan to try NetBeans on my next Java gig to see how it holds up in an enterprise development environment. If you haven’t used NetBeans in a while I’d strongly encourage you to check it out.

14 comments:

  1. For sure you go with netbeans for Scala, as of _now_ the scala plugin for netbeans is simply better/stable.

    ReplyDelete
  2. Great. I made the switch to NetBeans from Intellij IDEA when NetBeans 5.0 was released. Didn't look back to any other IDE anymore. NetBeans works wonderfully well for my needs.

    James
    http://jamesselvakumar.wordpress.com

    ReplyDelete
  3. just don't try and delete a 2.1 Entity EJB. It will remove the smile from your face, I promise...

    ReplyDelete
  4. and yes, I know, who would want to create one in the first place. ;)

    ReplyDelete
  5. Fortunately I have the flexibility to choose the IDE at work. Many people have not this flexibility and are forced to use Eclipse because their whole development team is using Eclipse. In fact all of my colleagues are using Eclipse but I am sure this number will decrease after they see, how well dynamic Web Projects are integrated in NetBeans: The hot-deploy functionality is 5x as fast as in Eclipse... - to mention only one significant advantage...

    ReplyDelete
  6. is it that good ?
    I have newest Netbeans installed on my laptop but never use it .. haha ... i might try it :)

    I am using vim at the moment, for doing my job in groovy, grails, php, html css etc ... :D

    ReplyDelete
  7. I think it's an excellent tool for working with some of the newer frameworks/languages out there. I'm still getting up to speed with hot keys and basic ide features but I've been very satisifed thus far. I think that I like it better than eclipse for the same reasons I prefer to use my Mac over my Windows based Dell. It just seems to work right out of the box. Don't take my word for it though. Give it a try to see if it's a good fit for you.

    ReplyDelete
  8. Netbeans is simply the best!
    I'm encountering too many problems even installing Eclipse-Ganymede on Linux-Ubuntu - different behavior 0n the 32 and 64 bit versions, conflicts with Firefox - xulrunner etc. None of this problems ever encountered with any version of Netbeans!

    ReplyDelete
  9. Building a Grails Pet Catalog using Netbeans 6.5 and MySQL
    http://weblogs.java.net/blog/caroljmcdonald/archive/2009/02/building_a_grai_1.html

    Sample Catalog Application using using JRuby and Rails
    http://weblogs.java.net/blog/caroljmcdonald/archive/2007/10/sample_catalog.html

    ReplyDelete
  10. Netbeans is feature rich and does work right out of the box, but it is still significantly slower than Eclipse for general run of the mill Java development. Try a rename refactoring on a variable and then again immediately after on a different variable.. BIG DELAY as you wait for it to re-scan your projects from the first (already complete) rename. Then there are a few irritating glitches that they can't seem to shake - like totally bogus error markers (class not found for generated classes from an imported web service - the project compiles fine, but the IDE shows errors). I use NetBeans now for my day to day work but most others in my org use Eclipse. Netbeans needs to improve speed and quality for plain old java development to be as productive as Eclipse in that area. For GUI, and other things NetBeans is better... for easy setup and "works out of the box" Netbeans is better.

    ReplyDelete
  11. Thanks for sharing your experience. It's helpful for me to see how you feel NetBeans is working for you in a day to day working environment.

    ReplyDelete
  12. Eclipse was my starter IDE, however its obvious to anyone who has used it for any length Netbeans which is the superior IDE; I am no guru but I can tell when one platform clearly outperforms another.

    ReplyDelete
  13. Netbeans has the best Maven integration i ever seen. I convinced my company to use maven for builds instead of ANT, and now i am also able to develop in Netbeans thanks to maven Integration. I had to introduce maven to eclipse, ohh boy what junk. All Eclipse plugins do not treat maven as first class citizen therefore always something goes wrong. While Netbeans understands and work on top of the pom definition. Now that's unbeatable, like no other.

    ReplyDelete
  14. i am now using netbeans 6.9 for grails. But what i found out that though netbeans is good but it is also slow mostly when it starts to scan for external changes. I cant wait that much for it to scan. Any work around for this problem. Is there any way to disable this external changes scanning? I am also interested to know what is this scanning for external changes is? Thank you.

    ReplyDelete