Reflection on JavaOne 2005, Page 2
Points of Interest
What follow are products and topics which I found particularly of interest from the 2005 JavaOne.
Java Studio Creator 2 EA
About Java Studio Creator (JSC)
Regular readers of Gamelan may notice that I have written a number of articles about Java Studio Creator. I got involved with it in late 2003, while looking for a simple and familiar option for many of our Web and VB developers to build web UIs (for which we were getting greater demand). A full J2EE-capable IDE, while perfect for architects and Java developers with years of experience, is an intimidatingly high learning curve for someone who just wants to slap a nice looking Web UI onto some existing business logic.
Java Studio Creator perfectly filled that hole when it came out in version 1.0. It allowed neophyte Java developers to get up to speed extremely quickly, provided an un-intimidating WYSIWYG environment to create Web pages, and bound to database tables, javabeans, and existing Java APIs, and in the later updates, had an early version of easy EJB client bindings as well.
Most importantly, there was a subtle but important shift in Sun's thinking when creating this tool. Instead of packing in more features, they kept to the core of simplicity and functional focus for this IDE. It was aimed exactly where it needed to be aimed.
With the new Java Studio Creator Release 2 Early Access, Sun's Creator Team has invalidated most of the work I did in these articles, and I could not be happier about that. Anything that greases the wheels to more functionality and faster development is welcome, as long as the strict functionality focus and simplicity are not lost. I believe the new R2 EA accomplishes this.
Firstly, a completely new suite of components is included. The old ones are still available but are moved to a sub-section of the palette. The new components (of which I will target a few below) share an easy theming capability. You can swap themes for an entire site built with the new components just by right-clicking on the theme you want to use and making it the default. The next build/deploy will impose a new slick look and feel which matches across all components.
Some of the new components I would like to single out are:
- Date Picker (or Popup Calendar if you prefer)—Having recently completed a project that used date pickers extensively, I am extremely happy with the inclusion. Like all the new components, the calendar looks extremely slick and professional. It also has auto-submit on change functionality.
- Improved Data Table—Another component we rely on is the Data Table. Improvements here include sorting, improved paging, and more control over the width and layout of data in the columns, as well as a wider variety of data types that can be represented in the columns.
- File upload component—Until you have needed one of these in a JSC project you don't know what a nuisance it can be to include one—now it's easy.
- Tree component—Great for navigation panels and anywhere else you might need a tree—of course it can be bound as easily as any other component in JSC.
- Other notables are, a tab set layout, validation of only parts of a page upon submission (i.e. A page can have three different sections, only one of which will be validated depending on the submit button you hit), page fragment boxes (for easier manipulation of page fragments), and an alert component. There are many more; for a complete rundown see http://developers.sun.com/prodtech/javatools/jscreator/ea/jsc2/reference/fi/components.html.
As well as this, the WYSIWYG experience has been greatly improved. I don't know whether this is due to the components, improvements in the GUI builder, or a little of both, but the result is that you have a much better idea of what a page will look like when you run the application.
There is also an AJAX component in there, a "google suggest"-like component—see the Wikipedia on AJAX—I hope this is a promise for things to come. AJAX components increase the Web UI user experience greatly (check Google maps or gmail for examples of how AJAX can help).
As well as the new components, there are a lot of important enhancements in JSC 2.
From a corporate development and architecture viewpoint:
- Integrated CVS support
- An enhanced and much more flexible page lifecycle (or at least, hooks to better be able to harness the lifecycle)
- An HTTP monitor to show you traffic to/from the server (you know when you need it, and it's a life saver)
- Improvements in EJB consumption and usage
- A task manager
I also like some of the less obvious features, such as the ability to import an existing HTML example page and start using it to drop controls on and the CSS editor.
Netbeans 4.1 based
As an aside, the new JSC 2 is based on the NetBeans 4.1 platform. This brings a number of less obvious but useful improvements in its own right, including better refactoring.
Finally, I wanted to touch on something that will be exciting for a lot of corporate developers. It is now possible to build portlets to the JSR168 specification using JSC 2. For those who do not know, portlets are a sort of encapsulated Web page that can be added into a portal along with others to make a custom layout to meet a user's requirements. They are extremely useful for report or dashboard-style Web applications.
Try it yourself
There is no need to take my word for it. You can download and try out the early access version of JSC 2. Go to http://developers.sun.com/prodtech/javatools/jscreator/ea/jsc2/index.html and sign up for the Early Access program. One hint that may save you some time is that if you are installing on Linux (and possibly Solaris), make sure you have the bc package installed before running the installer.
Netbeans 4.2 EA
In a lot of ways, NetBeans seems to be following some of the lessons learned from Java Studio Creator. The emphasis of the new 4.2 early access version again seems to be on simplifying development and improving the developer experience. Java has always had the flexibility and power; I think that this emphasis on accessibility now is exactly right. A developer wants to expend mental capacity on solving the problem, not fighting the tool. Netbeans 4.1 was a step in this direction, and NetBeans 4.2 seems to be taking it even further.
Many of you may already have heard about the new Matisse GUI builder in NetBeans 4.2. In a nutshell, Sun has introduced a new layout manager called the Natural layout manager, and added support within NetBeans for it. The result is a GUI building experience on a par with the simplest GUI builders out there, but with full resize, internationalization, and swappable look and feel support. For a brief example of Matisse, see the viewlet demo at http://www.netbeans.org/files/documents/4/475/matisse.html.
The impressive thing is that the layout will still look good no matter what look and feel or language you use. Longer or shorter text labels will not overrun other components or leave big gaps. Fatter buttons and extra eye candy in a look and feel will similarly not mess up the appearance of a frame. At present, there are still a few bugs (you can try Matisse yourself now by following these instructions) but when complete, Java will be as easy and fast to create Desktop GUIs as anything else out there (faster if you take into account the amount of resize code you normally need to write).