The Best Things In Life Are Free: Sun Java Studio Enterprise 8.0, Page 2
Regular readers of developer.com might be familiar with an article I wrote previously demonstrating the J2ME mobility pack for NetBeans. The article Building a J2ME Application in NetBeans 4.1 detailed building a simple but complete J2ME application in a single sitting, and I came away from the experience of writing that article with a profound liking for the module. Along with Java Studio Creator, it was some of the simplest and fastest development I have done in Java.
That same mobility pack is available as a download for the new Sun Application Server 8, and is a great inclusion. The mobility pack development experience is based around a flow editor, somewhat like a graphical struts or JSF page navigation editor, but with midlet forms instead of pages.
Like profiling, this is a worthy inclusion in the new Java Studio Enterprise and is well worth a look if you are interested in developing Java Mobile Edition apps.
Java Enterprise Edition Support
Also included is full support for J2EE 1.4, with the promise of support for Java Enterprise Edition 5 once the specification is finalized (and likely even before that in the form of Technology Preview Releases (TPRs) for the platform in the near future. In fact Sun has promised a TPR 1, which concentrates on new SOA features, within the next couple of weeks.
In the meantime, the J2EE 1.4 support offers full support for all EJB 2.1 types, including entity, session and message driven beans. This is assistive technology meaning that you can create full EJB apps without having to deal with deployment descriptors and other complexity. Again regular readers may be familiar with another article I wrote Who Says EJB 2.1 is Too Hard? This article demonstrates how the NetBeans 4.1 EJB features and Sun Java Studio Creator 2 EA can be combined to use EJBs simply and effectively to create a J2EE web application without even seeing a deployment descriptor.
Again these features are rolled into Java Studio Enterprise 8.
Of course, there is more to J2EE than EJBs, and all of the J2EE 1.4 standards are fully supported.
But again, there is more provided than NetBeans has. The Application Verification Kit will come in very useful for anyone who might be deploying to a different java application server. It will check for adherence to the J2EE 1.4 standard APIs to ensure that applications that pass the verification tests should deploy to any J2EE 1.4 compliant application server.
Collaboration and Team Support
You may or may not be aware of the collaboration plug-in available for NetBeans 4.1 and 5.0 Beta. It is a very popular plug-in with those who have seen it. It allows some clever collaboration including sharing files, code aware instant messaging, and even remote control of another developer's NetBeans IDE through a shared collaboration server (you can use one from Sun for free or start your own). It is a very neat feature that fits in well with the various agile methodologies out there.
The history of this feature is actually that it came from Java Studio Enterprise 7, was open sourced and released as a plug-in for NetBeans, where it was improved by the community. The cycle is now complete since the improved version has been re-integrated into Java Studio Enterprise 8.
If you are interested in the collaboration support (and you really should check it out), you can find out more details at collab.netbeans.org and even see a flash demo of it in use. It does make for an excellent demo, but personally I still admit to using VNC for much of my own collaboration work (of course, VNC doesn't do the file sharing or chatting part as nicely).
What Still Needs Improvement
Java Studio Enterprise 8 is a great enterprise IDE, and the price is certainly right, but it's not perfect. One of the weakest points traditionally for NetBeans, and the products based on it's platform, is refactoring support. Good refactoring support is an increasingly important requirement for newer agile methodologies, and more generally for fast development and large codebases. NetBeans 4.1 did add some refactoring, but it is still not a good story in comparison with Eclipse or IntelliJ IDEA (Jetbrains rightly pride themselves on the refactoring in IDEA).
Refactoring is an area undergoing much development in NetBeans 5.0, and so I am sure this will trickle down to Java Studio Enterprise in time, but for now it remains a chink in the armor.
Also support for swing is extremely competent and all you would come to expect, unless of course you had seen Matisse, which (unfortunately?) I have. When you have tried Matisse, you are spoiled for any other kind of Swing development.
To be fair, Swing support generally in NetBeans 4.1 (and hence Java Studio Enterprise 8) is at least on a par with anything else out there (except Matisse). Most serious swing developers will tend towards using GridBagLayout for even moderately complex forms, and the GridBagLayout customizer provided in Enterprise 8 really does help you get this notoriously tricky layout manager somewhat under control, with a separate view that helps you move objects around, border them, expand them to fill available areas, etc.
However, as mentioned, one look at Matisse is enough to make you wonder how we got where we did with the GridBagLayout. Matisse is still very experimental right now, but knowing where the future of Swing development is likely to be, anything short of that feels like an omission.
I am sure there are plenty more things that people will miss, but based on my experience, refactoring is the big thing. In fairness, for NetBeans there is a plug-in called RefactorIT that definitely improves the story, but I do not know at this time whether it will work with Java Studio Enterprise 8.
The Big Picture
The release of Sun Java Studio Enterprise 8 fits well into Sun's apparent developer tools strategy. The offerings hang together well.
Java Studio Creator provides rapid and simple development of web based applications, with a focus on direct database access or clients for EJBs and web services (but only clients).
NetBeans provides bleeding edge features, and a focus for community development which will hopefully help propel development forward (and certainly appears to be doing so). It has also been closing the gap between itself and Java Studio Enterprise, with 4.1 and 5.0 adding EJB support and other features that were traditionally the domain of the enterprise offering.
Java Studio Enterprise 8 of course represents the enterprise offering for the power developer or architect. The gloves are off, all forms of java development are possible and there is a great deal of power. It could also be quite overwhelming for a beginner just coming into the Java world.
All of these developer tools are based on the same platform, and that is clear from the standardized feel you get across them (a welcome thing).
If anything though, the new consistency across the suite of tools, and their integration, really points out a hole that I have noticed and danced around before, but which has suddenly been brought into sharper focus.