Open-source Java: Part Three Sun Microsystems in 2007 announced a re-imagining of GUI platform Swing with JavaFX. Swing, Sun said, had reached an architectural dead-end and need a reboot to compete on modern, Rich Internet Application (RIA) platforms.
As Sun pitched JavaFX, Adobe brought out Flex (which is based on its Flash Player plug-in) and Microsoft countered with Silverlight.
It's unfortunate that just as JavaFX 2.0 is being released, those who helped inspire it are going HTML5. Meanwhile, almost nobody uses the phrase "RIA" anymore.
Microsoft has all but sidelined Silverlight while the bell of uncertainty is tolling for Flex with Adobe's recent announcement that it is floating the Flex SDK out to the community. Adobe insists it is still behind the Flex SDK, but it seems more like a loving form of euthanasia. Adobe, meanwhile, has decided to stop development of Flash Player for mobile.
The culprit in both cases is HTML5, the next version of the web mark-up protocol that is killing closed and proprietary media stacks.
Is JavaFX - the subject of our third and final look at Java five years after Sun released it under a GPL licence - in the wrong place at the wrong time? Has it already lost and doesn't know it? Maybe not: Microsoft may have had Windows to leverage Silverlight but Adobe was the real leader thanks the the dominance of Flash and Adobe's surprise change of direction could make way for new, standards-based development tools - if Oracle can get serious on JavaFX. Delivering on its promise to open-source JavaFX might also help.
With Adobe it's all about the tools: the platform is almost secondary, it just needs to be sufficiently kickass to support the designer-oriented toolset.
When it comes to Oracle and Java, however, the platform's the thing and tools are demonstrably an afterthought, as the database giant has shown with their continued lack of a JavaFX GUI editor.
Like a Quake Live match where all the players have dropped out leaving just one player to run silently around an empty map, Oracle may suddenly have the RIA arena all to itself. But is JavaFX good enough to capture the flag with no opposition, or will it manage to frag itself instead?
After the disaster that was JavaFX 1.0, Oracle has a lot to prove. Nevertheless, four years and another incompatible redesign later, we have version 2.0.
Time to 'fess up
While there's much that is good about this latest "'fess up to the mess up" reboot, JavaFX 2.0 is mostly defined by what's missing - a theme that also ran through the keynotes at Oracle's annual JavaOne this year. It's very revealing of the mindset involved that on the official website, the "What's New?" link actually points to the JavaFX Roadmap.
But let's start by looking at what the troubled GUI platform does have to offer.
JavaFX has three deployment models: Desktop, Applet and JNLP (WebStart). It also supports a "preloader app", which is run before the main app loads. For example, you could do things like provide a custom animated loading screen, pre-load options or run a security check. The Application class provides a convenient hook into the enclosing web page or other host service.