Adam Bien's Weblog

Wednesday Dec 23, 2009

Five Features That Make NetBeans 6.8 My IDE of Choice

  1. Out-of-the-box experience: with a single download, you get not only the IDE with all useful plugins, but also an application server (Glassfish v3) and an integrated database (Derby DB). The whole procedure takes few minutes and is dead simple. The only thing what can go wrong is installing the application server (Glassfish) to a directory, which contains spaces in its name on Windows. The Java package (is actually Java EE) is 146 MB for Mac OSX, but the feature list is impressive: profiler, debugger, SQL / DB explorer, JSF 2.0 editor with (CDI / EJB 3 databinding) auto-completion, sub second incremental deployment (=deploy on save), maven, ANT, Hudson, JIRA, SVN, mercurial support, HTML editor, nice Swing WYSIWYG editor, JSR-311 (REST), JSR-181 (SOAP) support. I used the "Java" package also in many workshops - the attendees were able to install the whole infrastructure in few minutes. If it took significantly longer - it was always the fault of the virus scanner.
  2. Responsiveness / Performance: NetBeans 6.8 performance gets better and better with every release. NetBeans even monitors itself in the pre-releases and encourages you to report any "slowness". I'm actually using two bundles/installations for my daily work: Java FX and Java (EE). I tried the Java SE bundle with the size of 45 MB once, but didn't encounter any performance difference to the Java EE bundle. The only reason for having this two installations is the independent lifecycle. I'm often working with daily builds. Why? Because they are stable and the installation is very simple... You can just redeploy e.g. a Session Bean in few milliseconds, just by saving it. I'm also using Eclipse, where my clients are forcing me to do so. The max number of different Eclipse installations was 35. The irony here: Eclipse wasn't able to handle the different plugins (e.g. try to install myeclipse, then something else) in different versions at the same time. But exactly this should be solved by OSGi :-). 
  3. It Is Primarily An IDE: although NetBeans is built on top of a RCP platform - it is primarily an IDE. The plugins are seamlessly integrated and work fine together. The reason: the plugins are developed by one benevolent dictator. The modularization is not the goal,  the real goal is the developer experience. The IDE feels and looks simple. The menu structure, inline - wizards work well together. The best of all: you can get entirely rid off wizards and achieve everything in the editor. It is enough to know the following shortcuts to develop a simple Java EE 6 application: ctrl+space, ctrl+i (alt+insert on windows), and alt+enter. The documentation is also superb. You will not only find several tutorials for a given topic, but even some screencasts
  4. Cutting edge / innovation: Java EE 6, Wicket, Maven, Java 5, various application servers were supported from the beginning. E.g. NetBeans 6.8 supported JSF 2.0 before its release. Not everything made into more than one release, but was a nice inspiration. Project Jackpot (AST transformations - interesting for automatic API alignments), Meta Data Repository (MDR) - was one of the first MOF implementations. MDR was capable to perform model to model transformations and code generation. Both subprojects died. If you really need a decent MDSD environment - look at EMF in eclipse land or JetBrains MPS. Here eclipse still shines. JSF Visual Web Pack was one of the first (the first?) WYSIWYG editor for JSF. It was killed by JSF 2.0 and facelets in particular.
  5. Standards / Compatibility / Pragmatism: NetBeans relies on (JCP) standards and uses natively ANT (JDK) or Maven for the code compilation. Although NetBeans compiler is also incremental - at the end everything gets compiled by standard JDK-compiler. I had some trouble with eclipse compiler in the past - it (mistakenly) compiled everything - also wrong generics code - CI (hudson and cruise control) complained later. We spent several hours / few days to find and fix the problem. I never had similar problems with NetBeans. NetBeans runs on plain JDK, is Swing based with very good Swing / Java FX support.  Swing WYSIWYG editor comes out-of-the-box - there are not additional plugins needed. If you are running JDK 1.6 - you have already VisualVM installed. VisualVM is actually the (RCP) core of NetBeans with its profiler. NetBeans also supports a two way Eclipse import / export - what is often used in projects, were developers are forced to use Eclipse :-).
  6. (Look and Feel): NetBeans looks very nice on Mac OS X. I'm using NetBeans intensively since the version 5.5 - so before it actually looked as good as it looks today. It isn't the main reason, why I'm using it. However it looks and feels better than Eclipse on Mac OS X - and far better than IntelliJ. In fact I used the IntelliJ 9 opensource builds and thought they were actually broken. To be clear: IntelliJ is still superb in respect to Java EE 6 features (like ejb-jar.xml support, better JPA QL etc.). NetBeans designers try to improve little things like icons, splash screens, look and feels continually. Because NetBeans is based on Swing, you can use as many L&Fs as you like (see some screenshots here).
It is not only my perception - NetBeans is gaining significant momentum (at least in Germany) - see this results of this quickvote (only 5% behind eclipse and far ahead IntelliJ). NetBeans is like Mac or openBSD...


Special Events: Java 8 with Java EE 7: "More Power with Less Code", 13th October, 2014 and Java EE 7: "Testing and Code Quality", 14th October, 2014

A book about rethinking Java EE Patterns

Comments:

Hi Adam.
I agree with you.

Posted by Oleg Mazurashu on December 23, 2009 at 11:05 PM CET #

Hi Adam,
I also agree. I'm looking forward to future versions of NetBeans, while enjoying working with 6.8.
Regards, Claus

Posted by Claus Lüthje on December 23, 2009 at 11:49 PM CET #

It's sad that the Jackpot project is dead for ages.

Posted by Christian on December 24, 2009 at 04:45 AM CET #

I had to upgrade from 6.5 recently since a plugin I needed didn't support the older version.
I was shocked that the version just didn't work, it seems like Netbeans has been moving backwards for several revisions. The main issue is with the "Feature On Demand" bug which just doesn't work. Trying to create or load any mobility project just fails with no error message you can understand. The only workaround I was able to find was to uninstall NetBeans and reinstall it without "feature on demand". This took me over a day (multiple downloads of NB).
No significantly useful new features are available since 6.0, practically all of the work went to the scripting support which I don't need as a Java developer.

As a longtime hardcore NetBeans fan I'm pretty much disappointed by the past 3 years.

Posted by Shai on December 24, 2009 at 10:26 AM CET #

@Shai,

I'm using NetBeans for Java FX, Java EE and Java SE development with various frameworks. All upgrades worked perfectly - actually too good. NetBeans recognized the latest version / plugins and migrated the configuration - what I actually didn't wanted :-).
I didn't used it yet for Java ME development. I only heard good stuff about that. Sorry for the trouble - you should report the bugs.

NetBeans engineers are obsessed about backward API-compatibility - they even write books about that :-).

thanks for your comment! Merry Christmas and a Happy New Year!,

adam

Posted by Adam Bien on December 24, 2009 at 10:58 AM CET #

@shai
"No significantly useful new features are available since 6.0"

You ought to look more closely at the release notes or just explore the IDE a bit more. Although a good deal of work did go into support for scripting (which has made the IDE faster and more flexible), there are a lot of nice features for the Java programmer added with 6.0 and later:

- Local history
- Support for Spring and Hibernate
- Quick search
- Mercurial support
- Eclipse project import
- Per-project formatting settings
- Automatic equals/hashcode generation
- Improved REST/Web services support
- Many profiler + debugger improvements
- Major Junit improvements
- Maven support
- HeapWalker
- Hudson integration
- Major performance improvements
- Generated task list

These are just the ones I can think of off the top of my head.

Posted by Tom Wheeler on December 24, 2009 at 05:13 PM CET #

@Tom,

you are absolutely right. NetBeans 6.8 is a great IDE and is lot better, than 6. I only miss 2 things: the toString generator and a "go to interface implementation" features: http://www.adam-bien.com/roller/abien/entry/two_useful_eclipse_3_5

They are available as plugins, but not out-of-the-box. That my only criticism.

Thanks for the list! Merry Xmas and Happy New Year!,

adam

Posted by Adam Bien on December 25, 2009 at 01:10 AM CET #

Too bad the groovy support is so broken. And what is there isn't communicated very well.

Posted by Tom Corbin on December 25, 2009 at 04:33 AM CET #

Ok, I gave Netbeans code editor another try. It is way better than before. Finally we have a lot of code generation and short cuts using only control+space. We can now create getters through control space (something that we could do in Eclipse years ago). No more need for special menus or shortcuts.

Netbeans has always been weaker on its code editor, and this time it appears it is trying to catch up.

There is still a lot of work to do. If I have an overrided method and change its signature to a incompatible one (changing return type to something not covariant), it will suggest to create the overridden method again, generating another error (eclipse would correctly suggest to change the signature, or change the parent class method signature).

There are a LOT of code features in eclipse like this one that are missing in Netbeans. For years.

These subtle differences between Eclipse and Netbeans code editors still makes a difference, and should be told, since most of the time we are doing one thing: coding. Netbeans plugins and out of the box features are cool, but they dont help us with the real thing.

Posted by Paulo Silveira on December 28, 2009 at 07:17 AM CET #

@Paulo,

almost agreed. But then you should check out IntelliJ. It has the best editor and is opensource.

Thanks for your feedback - please file your features.

thanks!,

adam

Posted by Adam Bien on December 28, 2009 at 11:19 AM CET #

It would be great if "Reset Window" worked fine in Netbeans 6.8 for MAC ... My experience with this feature is not being the best ...

Posted by Cormo on January 03, 2010 at 02:13 PM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
realworldpatterns.com
...the last 150 posts
...the last 10 comments
Links
License