NetBeans 6.0 is really slow compared to 5.5.1
I've been using it for a couple of weeks now at work, and while I like some of the things it's added, I wonder if most of it was worth the cost, considering how unresponsive it's become.
Things I like:
- the "revert" action thingies on the diff panels (click the little blue arrows and red Xs near the changes to see what I mean)
- the "local history" concept
- the change indicators on the sidebar beside the scrollbar (it used to show errors and the current cursor position, now it's much more useful)
Things that are okay, but I could live without:
- putting most likely matches at the top of the autocomplete menu
- the bezier splines on the diff panels
Things that are mildly irritating:
- The highlighter thingy that colours instances of whatever's under the cursor - the plugin by Sandip Chitale on which I believe it's based (and I used in 5.5.1) had a button on the toolbar to turn this feature on and off. I have a vim-ish colour theme (grey text on black) so a bright yellow highlight everywhere that can only be turned on or off by navigating the preferences dialogue is annoying - and I can't change the colour it uses! So I leave it switched off, and use the old fashioned (tedious, slow) right-click,find-usages which this feature was meant to replace.
- if you have a large contiguous region of "changed" code, for example you just added a hundred lines or so, you can navigate to that section really easily by clicking on the green markers in the sidebar... but this will always take you to the very top of the contiguous region, even though in the sidebar it looks like discrete chunks which you should be able to jump to individually.
- Alt+Shift+F (formerly "Fix imports," a beautiful piece of genius that would add the
"import java.util.regex.Pattern"-type lines automagically for you) now performs the glorious "Format source" task. Also known as "rearrange all my code, change whitespace, braces and newlines, and make it generally unreadable." Because, gods know, coders couldn't possibly write neat code. Easy to fix, but annoying that I should have had to.
Things I don't like:
- the several seconds' delay before most actions. In 5.5.1 I used Ctrl+Space the way I use Tab in a terminal - because it was quicker than typing out the whole word, and as an easy way to correct capitalisation. As a result I could spam out a line of java code while only actually typing maybe 1/4 or 1/3 of the characters and almost never needing to synchronise my shift key. Now it's quicker for me to type out the whole line, including the inevitable backspaces and corrections, than the wait the 2, 3, sometimes 5 or more seconds for the autocomplete menu to appear. Sure, it's neat when it's actually there, but usually I'm already a line and a half ahead by that stage.
- memory usage. Within two days of using 6.0 I learned how to override the .conf file (create a file called
~/.netbeans/6.0/etc/netbeans.conf) to add the parameter
-J-Xmx1024m so that stupid little red "no" icon would stop flashing away in the corner saying "I can't do anything, need more memory!"
- the way as soon as you put close-parentheses on a method call, javadoc (Ctrl+Shift+Space), go-to-implementation (Ctrl+Click), and sometimes even auto-complete (Ctrl+Space) NO LONGER WORK, because it can't recognise the method signature - and the only way to get out of this situation is by throwing semicolons around or deleting code until it works again.
- refactoring something in a common library, which then causes the whole IDE to lock up while it "compiles" every open project
- using "Project" dependencies if, like we do at work, you have lots of projects in a mostly linear hierarchy, where the root libs are common to everything, and each subsequent tier is common to almost everything above it. So compiling a top-level project involves checking the root libs, then rechecking them for tier 1, then rechecking them and tier 1 for tier 2, then rechecking the root, tier 1, and tier 2 for tier 3, ... etc. If, like we recently did at work, you add another level of projects above the top, you actually double the time it takes to go through the dependency check before compiling the project - on every build! Relatedly, would it be so hard to have a "Clean just this project, not all the dependencies" menu item?
Yes, some of those things have been there since 5.5 and earlier. But they could have been fixed. Stuff that didn't need to be fixed was. I'll keep using it, though; I've gotten used to the quirks, the way I got used to 5.5.1's. There are other little things I like, too, which my coworkers (the ones still in 5.5.1) are jealous of. I can't think of any at the moment. They're all little things, which just go to show that NetBeans is actually written by people who use it.
... Matty /<