Adam Bien's Weblog
Five Features That Make NetBeans 6.8 My IDE of Choice
- 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.
- 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 :-).
- 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.
- 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.
- 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 :-).
- (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).
NEW workshop: Java EE 7 and Java 8, January 27th, 2015, Airport Munich