Sun announced the release of Sun Java Studio Enterprise 8.0 at JavaOne Tokyo. Here you can find out the details and what they mean to developers.
At JavaOne Tokyo, Sun announced the launch of Java Studio Enterprise 8.0, its flagship enterprise IDE. In fact there were many announcements and details shared about it, and this article is intended to make some sense out of it all, and introduce some of the news.
The headline news has to be that the new Java Studio Enterprise 8 is now free, with a free SDN registration. In fact, Java Studio Creator has likewise been made free to anyone with an SDN membership.
Java Studio Enterprise 7 retailed in the US for $1895, so this is a pretty big deal. This effectively removes the last pricing barriers left for developers wanting to use any of the Sun Java development tools. NetBeans has always been free, but Java Studio Creator used to require a $99 per year subscription. Now, all three tools are available for nada.
Also, the Sun Application Server can also be used and deployed, even commercially, for free. In fact it has recently also been open-sourced in the form of the glassfish project.
So effectively developers can now download and use the complete Sun Java Development stack for free, for anything from simple web UIs through to full enterprise level application server deployments. Free makes a very compelling argument, as does the integration between the products (which is slick and easy).
So, it's free, but what else is new, well quite a lot actually.
Based on the NetBeans 4.1 Platform
Like the early access of Java Studio Creator 2, the new Java Studio Enterprise is now built on top of the NetBeans 4.1 platform. The 4.1 platform is a big improvement over the 4.0 and earlier platforms, and it is also good that the entire Sun Java tools suite is standardized on it as a platform.
The cosmetic differences are what hit me first. Like Creator EA 2, this is a good-looking UI that makes a great first impression:
Click here for a larger image.
If you have used the early access Java Studio Creator 2 you will see immediate similarities in the IDE. I like the welcome screen anyway as it gives you somewhere to go when you first fire up the IDE, but the inclusion of news from the SDN is a nice touch. An initial glance did not make it clear if this information could be obtained from a different RSS feed or not, but if it could that would certainly be a useful place to integrate the RSS bugs feed from the latest bugzilla.
The screenshot also shows the new project wizard, which gives you options about the kind of project you wish to create. Again this is familiar to NetBeans or Java Studio Creator users, the user experience is nice and consistent across these tools in general.
The NetBeans 4.1 platform also brings some other advantages which will be touched on later.
There are several big new features and improvements to existing features that are worthy of note.
The main focus for improvement in this release seems to be with regards to the UML features. Full UML 2.0 compliance is claimed (although the specification is still not fully set yet). Sequence diagrams are included, and incremental improvements in the other diagram types are also in evidence, both cosmetic and usability. For example, color usage features heavily in the diagramming; not a huge deal, but it adds a new dimension to UML usage of color for visualization and grouping.
Click here for a larger image.
A colored class diagram (warning, do not try to simulate a power plant using this model :-) )
The UML capabilities also include import and export using XMI (mainly intended for rational integration, but XMI should be standard enough to allow other usage). Drag and drop for diagram creation and manipulation is also a useful feature (and also, dare I say, a required one these days).
Click here for a larger image.
A sequence diagram (with synchronous and asynchronous messages).
Unless you have been living in a cage you will probably be aware of the superb profiling features now available in the latest profiler offering for NetBeans (it is a favorite topic in the Java blogosphere right now, for example Romain Guy, blog talks about using Eclipse and NetBeans side by side, with NetBeans being used for the excellent profiling it offers.
Anyway, this excellent Profiling module has been added to Java Studio Enterprise 8, and has even been augmented by a load testing tool which integrates with it. This works by allowing you to record an interaction session with the server, and then replaying it simultaneously from a configurable number of simulated users, allowing you to soak test a server and try to ensure deep seated hard to find threading bugs don't show up under heavy load.
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.
Click here for a larger image.
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.
While Java Studio Creator offers a superb "VB like" user experience for rapidly creating web based apps with a minimum of fuss, it is more apparent than ever that there is really nothing equivalent for swing based applications.
If swing still has a part to play in future development (and I firmly believe it does, web UIs even with AJAX will only go so far, and a cross platform, rich and mature GUI library with simple web delivery, i.e. Java Web Start, makes a compelling case for filling the hole) then what seems to be missing is a RAD tool with the same focus as Java Studio Creator, but for swing.
Creator's strength comes from its focus on doing one thing and doing it well. Data binding, drag and drop development, WYSIWYG GUI construction and so forth make it a perfect VB level development tool. While Matisse from NetBeans 5.0 is clearly the wave of future swing development, NetBeans itself lacks some of the focus that Creator has - NetBeans being more of a generalized development tool.
Perhaps we will some day soon see a Creator like project that incorporates Matisse in the Sun tools lineup, or perhaps it will be rolled into Creator itself. On the other hand I could be way off base. The current tools suite really makes a good case for having something like this at some stage though.
From reading recent interviews with Jonathan Schwartz, I have seen him repeatedly stated that Sun's development tools are not only all being made available for free, but that they will soon also be open sourced as well. It has certainly already started to happen (NetBeans has always been open source, Glassfish is also now open source). In time it is clear that we can expect Java Studio Enterprise and Creator to be open-sourced. In the meantime, the step of making them freely available is a good one.
I think it is certainly safe to say that anyone currently using NetBeans 4.1 for enterprise level development would probably do well to take a look at the new Sun Java Studio Enterprise 8 offering, especially now that it is free to download and use. The new features in Sun Java Studio Enterprise 8 like UML integration, load testing, and the AVK make a compelling case for enterprise development. Likewise, eclipse users should check it out. I use eclipse too, and I like it a lot, but these days I tend to choose my IDE based on the project requirements, and increasingly I find eclipse a little fragmented in it's enterprise development story.
Of course, bleeding edge users, fans of Matisse, or those with an aversion to signing up for free registration to get tools will be wanting to stick with Eclipse or NetBeans. IDEA still represents the geeks choice of IDE if you are willing to pay for it.
Finally, for anyone involved in simple java web app development, or even those wondering what all the fuss with ruby on rails is about, I would urge you to download Java Studio Creator 2 EA (and full when available) now that it is free. Until you have seen the rapid development that is possible with this tool, you will not believe it. It is aimed squarely at the same problem domain that ruby on rails is targeted at. I would love to see more comparisons between Java Studio Creator 2 development and ruby on rails, rather than the current vogue of comparing it with hand editing J2EE or spring configuration files without any IDE support.
You can sign up for the SDN, and download Java Studio Enterprise and Java Studio Creator at http://developers.sun.com
About the Author
Dick Wall is a Lead Systems Engineer for NewEnergy Associates, A Siemens Company based in Atlanta, GA that provides energy IT and consulting solutions for decision support and energy operations. He can be reached for comment on this and other matters at email@example.com. He also co-hosts the Java Posse with Tor Norbye and Carl Quinn, a podcast devoted to Java News and Interviews, which can be found at http://javaposse.com.