SF/JavaOne, Day 2, Netbeans Joy
For those who don't know me, i used to be a huge Netbeans Nut. I
used their tools when they were just in their infancy and was thrilled
at their rapid pace of developement. Of course, in the past
couple of years the amount of Java coding that i do has fallen off a
lot, so i haven't had the opportunity to really pay attention to what's
going on with them. Amazingly, they seem to have kept up that
sprinting pace of theirs without needing to pause or "Redefine their
vision". They also seem to be thriving in a highly competitive
java IDE space. Eclipse, IntelliJ and Netbeans all seem to be
taking the best ideas from each other to create better and better
Current awesome things that i'm seeing right now from them:
- Background compile. This was one of those killer features
that switched me over to Eclipse. It's now in Netbeans so i can
- Generics support. Netbeans seems to have far better java1.5
support than Eclipse does. (and yes, i am referring to the latest
bleeding edge drops of eclipse)
- Expanded refactorings. I did try out several of their refactorings, and was pleased with them for the most part.
However, i tried a rename refactoring that changed the meaning of my
code, and they did no verification of the rename to detect and warn me
about this. This makes refactorings highly suspect and dangerous
and is definitely something that needs to be addressed asap.
- Expanded code assist tools. IntelliJ is still king here,
but netbeans is catching up fast. This is one area where i really
like what the competition is doing and we should be incorporating their
great ideas into our own IntelliSense work. For example, C#
IntelliSense has an attitude of "we'll assist you with whatever we know
to be valid at this point, but no more". Whereas Netbeans seems
to take the attitude of "we'll let you type pretty much whatever you
want, and if we can find a way to make it valid, we will."
An example of this is typeing the name of a class that you don't have a
using/import for. In C# we won't help you type the class name,
although we will offer to add the "using" after the fact. In
Netbeans, their quick assist will offer the class name for you (and
tell you what package it's in), and if you select it it will
automatically add the "import" in for you. Of course, this can
mean that Quick Assist dropdowns get huge, but with smart filtering in
Netbeans, and different quick assist windows in Eclipse, it means that
it's easily understandable and manageable. I definitely want to
experiement with different styles like this for providing code
assistant in future versions of C# IntelliSense!
On top of this core support in the IDE proper, i'm seeing an enormous
amount of excitement and enthusiasm from other teams who are writing
plugins for this great IDE. J2EE plugins, Profiling plugins, etc.
etc. etc. I'm not sure how other people feel about that, but for
me, it's not essential that hte tool come with everything out of the box
Ok. Off to the pavilion now. Will recap that later!