Showing posts with label IDE. Show all posts
Showing posts with label IDE. Show all posts

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.