Sun will release a preview version of the JavaFX Software Development Kit later this week,
I'm excited by what we've put together but also exhausted. We've done an incredible amount of work during the last year. Now I know what it was like in the early days of Java. Since JavaOne 2007 we've built (from scratch), a compiler for a new language with many non-trivial features, a GUI runtime with a new graphics and animation stack, new Netbeans plugins with code completion, utilities for graphic designers, a new kind of Javadocs (rewritten from the ground up), plus docs, samples, and demos. And that's not even counting the many improvements that are going into JavaSE 6 update 10. Whew! It's been a long year.
According to Simon Brocklehurst, a few features will not make the preview release but will be coming in version 1.0 due out later this year. These include: 3d vector graphics, the ON2 VP6 codec, streaming video, and local file system access. However all the basics are there including standard UI elements, regular and key frame animation, 2d graphics, and export from Adobe Illustrator to JavaFX.
That last piece is important to Sun if it wishes to compete against Adobe’s Flash and Flex products. People working on a particular rich internet application have different skill sets. Artists need a way to develop content, such as the skin of a video player, in a tool like Photoshop or Illustrator which is optimized for their creative talent. Then they need a way to pass that content to programmers to add the behavior behind the art. Flash has had this capability for years. Instead of trying to create artist tools from scratch, Sun will try to piggyback on top of the Adobe tools through exporters. The preview version will export from Illustrator, and the final 1.0 version will export from Photoshop.
Will JavaFX be enough to unseat Flash/Flex? At this point, I just don’t see it. Flex 3 is growing like gangbusters, and Adobe controls the whole tool chain. They have the workflow covered, and they have years of experience bridging the gap from designers to developers. More importantly, Adobe has earned the trust of those same designers and developers. It’s a shame, really, but after 10+ years of leaving Java applets to wither on the vine, it’s going to take many more years for Sun to prove that it understands rich internet applications and that it can deliver a compelling vision of the future. Tellingly, even the JavaFX home page doesn't actually use JavaFX; it uses Ajax and Quicktime movies.
There are some niches, however, where JavaFX may flourish. In particular, consider environments like certain TVs, set-top boxes, Blu-ray players, and mobile phones that already have Java running (sometimes as the only way to run programs). A scaled back JavaFX Mobile running on top of Java Mobile Edition (ME) will give JavaFX an instant base that can’t be ignored. It remains to be seen how much of the speed and functionality that we see on JavaFX Desktop will translate over to the mobile and embedded side, but Sun has a definite opportunity there.