Sun plans to follow JavaFX for the desktop, due this fall, with JavaFX for mobile devices in the spring of 2009.
Sun Microsystems has a long ways to go before it steps up to compete with Adobe Systems Flash or Ajax or even Microsoft Silverlight in building Web 2.0 applications. But it clearly has that goal in mind as it works on producing a version of JavaFX for the desktop, which it seeks to launch this fall.
Sun's Param Singh, senior director of Java marketing and veteran executive of Apple's Multimedia Group, filled in some of the gaps in the information available on JavaFX in an interview Wednesday, the second day of Sun's 13th annual user group, JavaOne, in San Francisco.
JavaFX also will have a timeline sequence engine, something like the one pioneered by Adobe's Flash, that will allow animations and coordination of a multimedia sound and video roll out.
But even more important, perhaps, JavaFX is a bid by Sun to coordinate powerful back-end programming on a multiprocessor server with an engaging and rich presentation for the end user. All three -- Sun, Adobe, and Microsoft -- still have issues in pulling together the power of the Internet server and the presentation to the user. Think of the difference between bumping your way through Web pages versus the enveloping action of a computer game. Sun thinks it's going to win the arms race to coordinate the two.
Sun expects to give developers the option of producing user interfaces for Web applications that run inside the browser window, or outside on the user's normal computer desktop work space. It can do this because it will have a plug-in for the browser that updates the Java Virtual Machine, resident on many PCs. That JavaFX runtime exists in Java Standard Edition 6, update 10, and will gradually be added to existing Java Virtual Machines through an automated update process, Singh said.
At the same time, JavaFX applications will have the ability to migrate out of the browser window. The icon for a JavaFX application, once it's been downloaded, can be moved onto the user's desktop and run there through the usual drag-and-drop method. The application, unlike most that are streamed down to the browser, can be either run while connected to the Internet or stored and saved as a permanent addition, available to run when the user is disconnected. Online application suppliers have been struggling with that issue -- what to do when the user is no long plugged into the Net.
But there's still the issue of simplicity of application building. "Designers for end-user interfaces want to assemble content, not program it. We start from a strength among programmers, but we will produce incremental tools that allow designers to make the front end more enticing. We need to bring both of these communities together," Singh said.
Exactly how that "bringing together" will proceed will await the first software development kit Sun can produce for FX this fall. Will it also be able to produce "assembly oriented" content tools, the way Adobe has?
In a demonstration Tuesday that needed to be restarted twice, Sun illustrated a mashup JavaFX application. A user's collection of Facebook and Flickr pictures were loaded into the application, then a sophisticated flocking algorithm applied. If the user entered a person's name, all the pictures with that person in them began to flock together out of a slowly moving mass on the screen. Pictures with similar colors could be enticed to flock together, etc. It was a combination of programming and presentation that many in the audience hadn't seen before.
Whether they will see it on their own computers will depend on how fast Sun can deliver the goods and whether they will be able to perform as expected.
"We are focused on strengthening the designer/developer integration," claimed Singh. The flocking demo illustrated Sun's programming skills. The scripting code behind it had been compiled and could run fast enough in the Java Virtual Machine to keep everything in motion. Most scripting or "dynamic" languages wouldn't have been equal to the feat; they must go through an interpreter, and interpreted code is slower than compiled code.
As Sun produces JavaFX for the desktop, it hopes to capitalize on its capabilities by following up with JavaFX for mobile devices in the spring of 2009. Java already has a strong presence in the cell phone and mobile device market. Nokia representatives say more than half of all their phones -- not just their smartphones but all their mobile device inventory -- run Java now. If JavaFX gets a toehold on the desktop, Sun may outsprint the competition in offering capabilities for rich Internet applications on mobile devices.
If advertising, for example, could be inserted into an Internet server's response to a user, based on what that user wanted to do with a running application, such coordination might yield competitive advantage. It already can be done in various clunky Internet applications, but that's not the point. The point, said Singh, is "how seamlessly all the pieces can be overlaid with each other."