Nov 23, 2007

Love/Hate: Netbeans

Although this is not related to Ubuntu, I am doing part of a contract in Netbeans and decided to describe the annoyances of it.

I used to love Netbeans. As a matter of fact, I still think it is the best Java IDE out there (although I still use Kate). Compare it to its main open-source competitor, Eclipse. My first experience with Eclipse was that it was a huge pain in the ass to do anything, and it ran slow as hell. Before I loaded a project, it would use up over 150mb of memory. After the project was loaded it was closer to 200mb. Then if I pushed the . operator for an object, my computer would freeze. So Eclipse was tossed.

So why does Netbeans suck? Well, it's written in Java. Therefore, it's clunky and slow. Compare it to Visual C++ or KDevelop which are (I'm assuming) written in C++, it has a far higher memory usage and takes longer for dialogs and such to open. Not to mention that Java GUIs are pretty ugly next to the lovely GNOME themes.

The biggest pain is the editor itself. I will not get into the holy war between spaces and tabs for indents, but personally I prefer tabs. Netbeans does use tabs, but here's the interesting bit. I like my tab size at 4. So I press tab, and Netbeans inserts 4 spaces (even though I specifically said not to replace tabs with spaces). If I push tab again, it gives me a tab character and erases the 4 spaces. So if I have one line that has one indent, there are 4 spaces and the next line with two indents has no spaces and one tab. From my experience the two sides of the tab/space argument both agree that mixing the two is a bad idea, except in certain situations. So why does Netbeans do it? Anyway I figured it all out, you have to set the tab size in the main editor options and then in like 8 different places for each type of file (Java, HTML, CSS, etc.). What a mess.

There are a couple other things about Netbeans that are a pain. The GUI editor, although fantastic for Java, doesn't produce a GUI that when executed doesn't really look like it did in the editor. You have to put some space at the top to make room for the menu bar (which has different sizes on different computers), and sometimes widgets will have a different size than expected, or the text on the buttons will appear as "..." instead of what was intended. After working with Visual Basic or Visual C++, this is a big pain. Don't get me wrong, Swing is a great library (especially compared to GTK+) but it still needs a good editor that will produce consistent interfaces (Java IS cross-platform after all).

No comments: