Client-side Java's evolutionary leap

Looking back on a year of changes

1 2 3 4 Page 4
Page 4 of 4
Cay Horstmann: I like closures a lot, and I wish Java had them now. But I don't really see a way forward. I favor the BGGA proposal, but with Neal Gafter's move to Microsoft, it has lost a lot of momentum. CICE is better than nothing, but that would signal that Java is essentially frozen and needs to be replaced, not improved, in the fairly near future.

JavaFX throughout 2009

This year promises to be an exciting one for JavaFX. For example, Simon Morris posted JavaFX in Style (about skinning UI controls using CSS-like style sheets) on the last day of 2008, and Amy Fowler posted  Layout Primer for JavaFX1.0 a few days later. I'm certain that we'll learn even more about JavaFX as the year unfolds.

Although the JavaFX 1.0 release already contains a beta version of the FX Mobile runtime, which lets you run rich JavaFX applications on MSA-compliant mobile phones (or the SDK's mobile emulator), developers will wait until the February release of JavaFX Mobile to get our hands on the JavaFX Mobile SDK.

Other significant developments for JavaFX in 2009 are likely. A visual designer tool for JavaFX is expected to be released around midyear. We can look forward to JavaFX 2.0 (at least in preview form), which may or may not include the TV edition of JavaFX. Also, we can expect more JavaFX SDK updates following on the December 2008 JavaFX 1.0 SDK Update 1 release.

Other developments from Sun and elsewhere

In addition to the JDK 7 preview at JavaOne, more JavaFX product releases, and a chance to play with JWebPane, we can expect new versions of NetBeans and LWUIT throughout 2009. And we can expect new Java SE 6 updates. Java SE 6u12 should arrive soon; along with expected bug fixes, it will add:

  • Windows Server 2008 support
  • 64-bit Java plugin and Java Web Start support on the AMD64 architecture for Windows and Linux only
  • Limited mixing of heavyweight and lightweight components

I asked Richard Bair if he could give us a sneak peak at any unannounced client-side Java projects that Sun is planning for release in 2009. Although his reply doesn't reveal anything that hasn't been mentioned elsewhere, it nicely summarizes some of the features that will probably debut in JavaFX 2.0:

Richard Bair: I can't go into detail on things that haven't been announced, but I can say that we're working on a new user interface control toolkit, we're boosting performance of the graphics stack in JavaFX in a big big way, we're working on more and better Web services (RSS / ATOM / REST) support in JavaFX, we're working on an interaction designer tool, we're fixing more of the deployment and startup issues, and a lot more. I think it's going to be a really good year for client Java in 2009.

I'm especially looking forward to Pro JavaFX Platform: Script, Desktop and Mobile RIA with Java Technology by Jim Weaver, Weiqi Gao, and Stephen Chin. I asked Chin and Weaver about the book, which will probably be released in the first half of 2009:

Q: Can you tell us a bit about the Pro JavaFX book that you've been working on with Weiqi and Stephen?

Jim Weaver: [The book] will be a comprehensive guide to JavaFX, written in tutorial style. It is also being designed to serve as a reference, with lots of tables, etc. I'm very fortunate to have Weiqi and Stephen writing this with me, as they are both brilliant in the areas of Java and JavaFX. Dean Iverson, whom I mentioned earlier, is the technical reviewer.

Q: Stephen, can you tell us a little bit about your contribution to this book?

Stephen Chin: I am helping to build out a lot of the content on advanced layouts, enterprise integration, and the JavaFX mobile stack. It is a lot of work, but it is great to be doing this at a time when it is very much in need by the Java community.

As JavaFX becomes more popular, many developers will probably want to create JavaFX versions of their Swing products; some of these JavaFX versions should debut in 2009. For example, I think we'll see a JavaFX version of Mikael Grev's MiGLayout later this year. I asked Kirill Grouchnikov if he plans to migrate his popular Substance look and feel to JavaFX:

Kirill Grouchnikov: While I do not have any plans to stop supporting Swing applications in Substance, I have started to work on extracting the color and skin definitions into separate non-code files. On one hand, this is targeting the designer-friendly tooling to create Substance color schemes and skins. On the other hand, it might open a way to reuse Substance visuals in other user interface toolkits. JavaFX is one such option in that it supports CSS-like definitions of control visuals.
At the present moment, there is a severe lack of official documentation on the CSS skinning layer in JavaFX 1.0, but some of the community members have been actively pursuing this topic (for example, see  Simon Morris's skinning example). I hope that 2009 will see a tool that automatically converts Substance skin definitions into the matching JavaFX skin CSS files.

Finally, the Eclipse Foundation has distributed a simultaneous release of the Eclipse Platform and a variety of projects in late June of each year since 2006. The upcoming Galileo distribution is expected to arrive on schedule: June 26.

Summing up

Among 2008's client-side Java developments, I'm most impressed by three that hold much promise for the future of client-side Java:

  • Java SE 6u10: The arrival of Java SE 6u10 marks a starting point in improving the consumer's experience with Java. For the first time, users can start running a Java program without noticing a significant delay while the entire JRE downloads. This experience improved with Java SE 6u11 and should continue to improve with the successive updates and future JRE releases impacted by Project Jigsaw.
  • JavaFX: For the first time, it's possible to get user interfaces (and rich ones, at that) onto all of the "screens of our lives." As long as we target the common profile, a user interface looks/works the same across desktops, mobile phones, (eventually) television set-top boxes, (I expect) Blu-ray disc players, and so on. In contrast, Swing only lets us create user interfaces for the desktop. If we want to create a user interface for a mobile phone, we need to turn to the LWUIT.
  • Da Vinci Machine Project: Because current JVMs provide statically typed instruction sets, it isn't easy to support dynamically typed languages. Depending on the language, varying amounts of overhead are required, and this can impact a program's runtime efficiency. By making future JVMs more dynamic-friendly, I suspect that we'll eventually see more client-side development take place in dynamic languages than in the Java language. And we probably won't need to wait as long for new language features to arrive!

It's an open question how client-side Java's evolution will be affected by these challenging economic times. Can Sun afford to keep innovating Java when it's losing money on server sales and support contracts? Perhaps economics will ultimately force Sun to relinquish further client-side innovations, and Java, in general, to the open-source community (beyond OpenJDK). Regardless, it's certainly clear from the voices you heard in this article that the urge to innovate on the Java client is stronger than ever.

Jeff Friesen is a freelance software developer and educator who specializes in Java technology. Check out his website to discover all of his published Java articles and more. His recently published book Beginning Java SE 6 Platform: From Novice to Professional (Apress, October 2007) explores most of the new features introduced in Java SE 6.

Learn more about this topic

Also from JavaWorld

1 2 3 4 Page 4
Page 4 of 4