Netbeans vs Eclipse
February 12, 2007 4 Comments
The last couple of days I have desparately tried to use NetBeans for some of my work instead of Eclipse. Read on for a skimmy comparison (or rather, a list of issues that I found with NetBeans)…
I wanted to use NetBeans for GNU Classpath development. This aims high, but after all, most of my projects in NetBeans are GNU Classpath related. I wanted to use my existing working directory which turned out to be easy: In NetBeans you can have a project directory that is separate from the sources (just like in Eclispe AFAIK). But then the problems started. I list the issues that were hindering my workflow badly:
- NetBeans lacks support for complex project classpath settings like there is in Eclipse. I can set up a couple of source directories, that is fine, but I can’t define include/exclude patterns, which is necessary for GNU Classpath’s crazy directory structure. My workaround was to hack the project’s ant scripts. This works fine for the compilation, but isn’t perfect, as NetBeans itself still sees the convoluted sources in the completion, search etc.
- Compilation just isn’t as smooth as in Eclipse. In Eclipse I usually don’t have to worry about that at all. I simply save a file, and it gets compiled automatically (including dependency resolution). In NetBeans I can either compile a single file (F9) or the whole project, both of which seems to be suboptimal: The whole project takes a coffee break of time, and I am already consuming much too much coffee. And compiling a single file without dependency resolution seems to be a little shaky. And then there is the bootclasspath issue, which completely breaks single-file-compilation:
- For a project like GNU Classpath I need to be able to tweak the bootclasspath so that the compiler doesn’t mix up the the classes from the JDK that NetBeans runs on, and the classes in the project. Again, I can do that for the ant scripts which is fine, but not for the IDE in general, which leads to the strange effect that I get errors all over the place because some CP-internal stuff can’t be found in the JDK’s classes, but when I compile the stuff completely it works.
- The support for different coding style is, well, more or less non-existant. I can only tweak the indentation and the braces and that pretty much was it. Leaving me with manually doing the coding style thing. This is unacceptable for me, all other IDEs I use (Eclipse and Emacs) do this quite well for me.
- I just love the useful warnings in Eclipse, for instance for unused imports and such. This simply doesn’t compare with NetBeans.
- Strange enough, I can’t seem to do a refresh (in Eclipse: F5) of the source tree. So when I do something outside the IDE, I can’t sync that, except by restarting the IDE.
- Update: NetBeans seems to also implement the very useful navigate-to-class feature (CTRL+SHIFT+T in Eclipse). However, I very much miss the quick-outline (CTRL-O in Eclipse). This is such a massively useful feature that I wouldn’t want to live without.
I desparately tried to use NetBeans, I really want to use it, mostly because I love Swing (and NetBeans with the GTK L&F integrates very well in my desktop, kudos!). But the above issues are hindering me in such drastic ways that I better stick with Eclipse. I see that some of the issues are beeing worked on, others probably not. When I get around to it I probably file some bugreports…