Thursday, August 20, 2009

Netbeans - a first really serious look

I have just started seriously using Netbeans for the first time - I've been forced to because it's what the client uses.

And I have to admit, that having used Eclipse up till now, I am definitely not enamoured with netbeans at all. In fact it has done nothing to recommend it. I constantly find myself going... oh, I wish I was using Eclipse.

Netbeans fans might be crying foul right now... and they have a right to, let me record some of my initial frustrations...

1. No inline variable
2. No inline method (though there is an extract method, called introduce method).
3. When you use the template short cuts (for, create field etc) the tab does not leave you where you want it to
4. It hides a lot - we're doing web service development - all the ant xml files which are used to compile and build, you don't see.
5. No call hierarchy
6. Search facility is nowhere near Eclipse
7. No Quick diff comparing repo version with local version (via the ruler)

A good way to explain netbeans is to say it is opinionated software (I remember someone describing ruby on rails like that) - iow, it's great, if you obey the rules and if you want to stay within the confines of what it wants. I don't like the ant scripts it generates and uses to build - I want to roll my own, as eclipse will let me and thus customise them the way I want to.

So what do I like about Netbeans?

It has very strong integration with glassfish - tells you a lot about the running glassfish server you're using to deploy to. I also wish I could use the collaboration stuff, because I've seen that it is very good.

I'm going to have to continue using netbeans so I'll see if my opinion changes... I'll wait and see.


Sparrow_ca said...

I don't love Netbeans, but I do use it regularly. I have some tips and some questions wrt your "initial frustrations". as I want to know if I'm causing more work for myself.
1. never seem to want it
2. I hope your not trying to inline methods for performance, this isn't 1970. :) Seriously though, do you actually use inline methood/variable that much?
3. You can customize this quite easily, though I've never had the need.
4. Um, the file tab? I like that it's "just ant" under the hood.
5. In what?
6. What's lacking in terms of search?
7. Mine seems to have this...

mx said...

1. Inline variable - is awesome and I use it all the time.
2. You're right, but sometimes I want to do that
3. Thanks, will have to dig deeper then
4. Yeah, I suppose you're right - I guess I don't like the fact that the view that I see is not the file tab by default
5. Call Hierarchy - what methods call this method and what methods then call those methods...
6. In Eclipse you can specify that I want to see where the variable is written to, or where this constructor is referenced or where this type is declared (as opposed to referenced)
7. What I'm referring to there is that when a file differs from version in the repo, where the differences are is flagged in real time in a special column next to the line numbers. If netbeans does have it, I have not found where to configure it.