Sunday, April 6, 2008

Lots-O-Plugins

This IDE is new. Any programmer with experience in another IDE might not want to give up all the bells and whistles he/she is used to. One might wonder if there are as many tools available for NetBeans. As of this writing, I have to honestly say that there is not. And that's a good thing.

Go to Tools|Plugins. A new application launches. It immediately scans some unknown server (I don't care where) and then displays the available plugins. If there are updates, you see that first. The list has almost every buzzword you might be looking for. Somebody knew I would be coming here. Like a kid in a candy store: click, click, click... hit the Install button. Nice. Now be carefull here; too much candy is bad for you. I tried this on my old laptop and was painfully reminded that it only has 256 MB of RAM. But you won't have THAT problem.

One of the first toys I try to get working in an IDE is a UML diagramming tool. If you do a search for UML in the list of tools available for Eclipse you get too many. Most of them suck. Many of them are dead projects with no support and they never worked anyway. Yet they still clutter cyberspace with their decayed links and distracting marketing attempts.

There is only one UML tool listed in the plugins for NetBeans. When I saw that, I thought, "hmmm. I guess I'll try this one." The work of surveying all the available packages, downloading, installing, configuring, learning the interface and supported functionality for each tool suddenly seemed greatly simplified. The choice was a no brainer. Apparently, Sun decided already which diagramming tool I should use.

Now most people would immediately balk at the notion that there was only one option. That thought occurred to me too. That's it? This sucker had better work then or this party is over. Turns out, that one tool has worked better than 90 percent of all the other open source UML tools I tried to use in Eclipse. It even does round trip engineering (of a sort). You can have it generate skeleton code from your model or it can generate the model from your code. That's enough for me. And it worked right out of the box. No link to a third-party web page. No having to register for a trial version. No worrying about expiration or limited functionality. Whew! Quite a relief actually.

There is an implicit endorsement of a plugin by Sun and NetBeans if it is provided as a default, or even listed as available in their plugins utility. If it is the only one offered, it better work. This goes back to the improved quality in NetBeans previously mentioned. I don't know if Sun is aware of this implicit endorcement but I'm glad to see the limited selection is not a limitation, so far.

I have not used all the plugins I installed already, but I like what I see.

Now don't go and assume the plugins are all hard coded. You know what making assumptions does. There is a way to introduce other .jar files to the environment using the Tools|Libraries feature. I'll save that for another post but I thought I'd mention it here.

That Other IDE

The obvious question is, "Why do we need another free IDE when the one we have is so popular?" Well, I guess some GUI programmers at Sun and NetBeans were wrestling with ubiquitous astronomical administration and thought, "We can do better than this."

So they did.

I've worked with more than one IDE over the years and I was impressed with the software industry when so many big names got together and supported one free tool for the open source community. The community for it is huge and the amount of support for it impressive. But "you get what you pay for" applies to some aspects. Installing and configuring some IDEs can be tedius. Getting the versions of everything you need for a plugin you want to use can be a chore. There just seems to be something lacking in the place where the sun goes out - precision.

<soapbox>
The world already has many free IDEs. The best way to get people to use a new one is to make it better. In the way that some companies have excelled despite established competition in an industry, quality and customer service makes the difference. This is not rocket science. Aiming for higher quality requires more commitment. The bottom line is affected by this attitude but where widgets (pun intended) are essentially the same, there's not a lot of opportunity for distinction. Project management techniques are to blame for sloppy software. When meeting dates is more important than getting it right, quality is the first thing to get the axe. When there is no charge for your software, what does the date matter? Take the time and effort to only release a perfect product. It's been done before.
</soapbox>

IDEs have evolved for many years so there are aspects that programmers know and come to expect. It's not really an option to change what and how an environment is used. NetBeans is better in subtle ways. If you are familiar with an IDE, there is no learning curve with this one. The standard user interface is something that was not broke, so they didn't fix it. Any well designed user interface will be transparent to the user. By that, I mean it will be intuitive enough that the user won't notice any difficulties with it. "No comment" (especially no bad ones) is a good thing with interface design. I don't recall any problem finding something in the NetBeans IDE. That is significant.

After a flawless install, (nice work guys) my first thought on seeing the GUI was also "nice!" The simple look-and-feel just seems better. Maybe they used higher resolution on the button icons or injected gensing into my graphics card or something. The whole thing just has a cleaner, sharper facade on it.

It only took me a few seconds to decide that I liked NetBeans. Whether I liked it the most took a few more minutes.

Yet Another NetBeans Blog

Sun is sponsoring a contest for people to try out the NetBeans IDE and blog about what they think. When I had found the anouncement for this contest, I had already installed 6.0.1 and had been using it for a couple weeks. I already had been writing a technical blog. Oddly enough, I had opinions too. It seemed to be destiny that I should write a blog about NetBeans.

"Hey! You got your NetBeans in my blog!"
"You got your blog all over my IDE!"

After just a few nibbles, I was thinking, "...two great tastes that taste great together!"

If I win a T-Shirt, I'll have something with which to wipe up this spill.