July 2nd, 2007

NetBeans still doesn’t get it

The marketing / evangelizing teams of NetBeans are very quick to respond to any obscure feature reportedly missing from the latest milestone drops of NetBeans 6.0, which usually involve arcane keystrokes requiring two or more hands at the same time. Every once in a while (about once every two-three months) I honestly try to switch to NetBeans for my home development (at work it’s not an option since some of our tools are developed as Eclipse plugins).

One of the best posts on “Joel on Software” described Microsoft’s strategy to compete against the(n) market leader in spreadsheets – Lotus. According to Joel, the tipping point was the introduction of “easy switch” feature into Excel. Not only you were easily able to import an existing Lotus spreadsheet, it was extremely easy to export your Excel back into Lotus. This gave people a sense of security in trying out the new product – if i’m not satisfied, i can always switch back to the environment i already know. And since Excel came packed up with a lot of advanced functionality, people actually never switched back.

Fast forward to NetBeans vs. Eclipse / IDEA / JDeveloper competition. It seems that the evangelists are focusing on the wrong angle. Showing me how to do something in NetBeans when i know how to do this in Eclipse (especially when i know most of the shortcuts by heart) won’t make me switch to NetBeans. What you can do is to let me point to my existing project and not fight me along the way when i want to run it. What do i mean?

One of the main selling points of NetBeans is that it’s Ant-centric (whatever that means). So what happens when i want to import an existing project? NetBeans provides an option to have it as a “freeform” (or something like that) project, which doesn’t allow right-clicking on a class and running it. I have tons of test applications that i need to run, and under NetBeans i can’t run them if i don’t create a new project. And if i create a new project, i’m stuck with tons of ugly and NetBeans-specific Ant tasks that use custom namespaces and what not.

I don’t want that. I don’t want the IDE to fight me. Not when it wants to win my developer heart. I’m OK with Eclipse. Maybe i’m missing a lot by not switching to NetBeans, but the initial barrier for existing projects it too high for me. I want a project that is portable across IDEs. I want a project that my users can check out from CVS and build from the scratch when all they have is a JDK. And that they can do it when the Internet connection is down. I want (at least a false) sense of security that i can always go back to Eclipse. At the present stage (tried 5.0, 5.5 and various milestones of 6.0) i don’t have it.