Friday, December 31, 2004

NetBeans 4.0 & IDEs

Since NetBeans 4.0 is (cleverly) an optional rider on the JDK5 update that just came out, I thought I'd give it a try. Initially it looked quite promising, as it said it would use my existing sources and ant file (which works just fine as a standalone ant build). It brought them in and at first seemed to recognize all the files with no fuss, but alas, the classpath once again reared its ugly head. The documentation that desribed how to set the classpath was out of sync with the windows that I was looking at while following their directions, and no amount of adding classpaths let it recognize that my imports actually existed. It didn't seem to pay attention to the classpaths set in my ant build files.

It also didn't bring up a lot of the files in the "Files" view of the project. At first I thought that this was because many of the book files don't have package statements, but then I discovered some unpackaged source files that did show up. Quite confusing.

So I think Netbeans has potential, but like many IDEs too much time has been spent on advanced features and not enough on the "initial experience." It doesn't matter that I'm not an idiot and I might be able to figure these things out eventually, I still want an IDE that's idiot proof, because


  1. I don't want to struggle with it; I have other problems that I want to solve and the IDE should be a helper and not something I have to work against.

  2. When I teach, I don't want seminar attendees to get lost in the IDE, either. That's not the problem we're trying to solve in a seminar.


Before you say "well, Eclipse does..." or "Idea is ...", yes, Eclipse is probably the closest thing to ideal, but until now it hasn't supported J2SE5 (or at least, people claim that it now almost completely does -- but I'm using all the J2SE5 features). Also, it's heavyweight, very project-oriented with lots of interesting distracting stuff so I hesitate to get too deep into it because it's too much of a hurdle in introductory classes. But it's free, so in more advanced classes it could make sense. However, by then people are hooked into an editor and are not interested in using a different one because they're not productive, so I say "use whatever you're comfortable with."

For introductory classes, the best luck I've had so far is with JEdit, because it helps without getting in the way of creating one-file exercises.

And JetBrains Idea costs significant money, so I can't just say that's what we're using. On top of that I've had no luck getting a real review copy. Many months after Java One when they said they'd get me a copy right away, they gave me a license that would timeout. Yes, I could afford to buy it, and I do buy products when it makes sense. But I'm sorry, there's a line; I'm not going to invest a lot of effort into something that, if I like it I would end up promoting, just to have the license timeout. So I haven't gotten re-hooked into Idea (although I liked it very much when it initially came out).

(1-6-05: Milani Marketing contacted me as a result of this blog entry, and has promised a non-expiring license. So I may get sucked back in after all. And I've also heard from a reader that the Eclipse 3.1 beta is very J2SE compliant, although I try everything so I would probably encounter the non-compliant parts. It's not clear how much help these will be for Thinking in Java, 4th edition, which is due at the end of February, but one or both will certainly be helpful when working on Thinking in Patterns, slated as the next project).