adam bien's blog

Thinking loud about Eclipse and Netbeans 📎

As Eclipse came out it was a revelation for me. It was lean, fast and came with refactoring. These time there was nothing comparable. The commercial "enterprise" tools were overbloated with unnecessary functionality - at the same time essential things like refactoring just didn't work. Eclipse was the solution and the escape. I actually managed to convert many developers from using e.g. Visual Cafe or JBuilder to Eclipse. Netbeans these days was actually not usable (for me). There were many developers who really liked Netbeans 3.X - but I cannot understand this. Eclipse was just times better. I even tried ForteJ - a commercial variant of Netbeans these days, but some really strange concepts like "mounting Jars" instead of setting up a classpath maked me to go away. I even used Eclipse in official Sun courses on Solaris - the students liked it. What I liked and still like in Eclipse is the puristic IDE, which can be easily extended. It was the directly opposite to the commercial, overblown enterprise tools which were used these days. I switched completely to Netbeans since about version 5.0, not because it is better, but more complete for my needs. I'm working as a consultant, so I had several installations of Eclipse installed, everyone was adjusted for the particular customer. The "plugin hell" begun. I spent to much time to install everything I needed, Netbeans comes with everything I need - and in 99% of all cases my projects could be easily opened by other developers. In Eclipse world there is a lot of overlapping functionality, which is good and bad at the same time. E.g. commercial plugins like MyEclipse overlapp partially with WTP and are/were incompatible with others like EMF. I spent more and more time to figure out such interferences . However I still like the puristic approach of Eclipse and the complete "out-of-the-box" Netbeans experience and started to search for parallels. 

The Eclipse model works very like Linux. You have a base, compatible system which can be easily extended, but if like to have more comfort, you should rely on distributions. And Eclipse is working in similar manner. There are already many Eclipse distributions (Yoxos, Codegear, Easyeclipse, Myeclipse) which provide a compatible set of plugins, which can be used for a certain purpose and safe a lot of installation time. However the chances are high, that there will be some fraction moving a project created from one distro to another (Just like porting one linux application between different distros), and you are already somehow dependent on the distros as well.

Netbeans model on the other hand is similar to the Mac or openBSD (with Application Packages) experience. You get not only the base system, but the extensions from one source as well. So the amount of Netbeans plugins/extensions is significantly slower, because everything what you really need is already part of the basic download. Although I prefer Linux over Mac and work with Windows :-) (another story), in the IDE space I enjoy the easy of installation and compatibility between different Netbeans projects. I'm even able to work with daily builds easily - no additional installation of plugins is required. I actually have only few plugins installed on top of Netbeans 6.0 Web & Java EE "edition" (UML, Maven and JavaFX), everything else what I need comes with the download. What I also enjoy now is the pace of development in Netbeans land. It reminds me at the early eclipse days, when I looked forward to every new milestone and installed it immediately. It's a lot of fun.

In Netbeans 6.0 even the Profiler and Visual Pack are part of the main download, so you can rely on such functionality as well. In Netbeans 5.5.X days you had to download an additional "Pack" for this purpose. The Netbeans extension mechanism is intuitive as well. You can use the search option to find an extension, without knowing from which URL it is actually downloaded (e.g. the UML-support is a good candidate). Even the update mechanism works similar to the Mac. Instead of downloading a new version from netbeans.org, a small icon appears which lets you install the patches incrementally. It works well so far (the first patch for Netbeans 6.0 is available through this channel).

Btw. you can use Netbeans without the extensions as well. Then the download takes only 21MB (just check out the Java SE edition) and the startup of netbeans becomes lightning fast. Btw. if you like to find more about the "out of the box Java EE 5 power" - in Munich at 24.01.2008 I will give a talk about Java EE 5, Patterns, Architectures with (but not about) Netbeans 6.0.