JavaFX is Sun’s answer to Flash and Silverlight, and it’s partially open source under the GPL. I’ve just downloaded the bundle of NetBeans plus JavaFX SDK. JavaFX Script is a new language for creating rich multimedia effects. I’ve also downloaded “Project Nile”, which includes “a set of Adobe PhotoShop and Adobe Illustrator plug-ins that allow graphics assets to be easily exported to JavaFX applications”. Unlike Microsoft, Sun is choosing to work with the designer’s existing favourite tools rather than trying to wrench them away to a brand new set (Expression).
According to Sun JavaFX is happening quickly: it is promising “Version 1.0 of JavaFX desktop runtime by the fall of 2008”.
The bit that makes me sceptical, aside from the speed of events, is that if I’m reading the following diagram right, users will require both the Java Runtime Environment (could be Java ME) and the JavaFX runtime in order to enjoy the results:
By contrast, Microsoft’s Silverlight does not require the full .NET runtime to be present, making it a much smaller download; and Flash has always been small.
The win for JavaFX is access to all the services of Java:
…JavaFX applications can leverage the power of Java by easily including any Java library within a JavaFX application to add advanced capabilities. This way application developers leverage their investments in Java.
On the other hand, it means a more complex and heavyweight install for users who do not have the right version of Java itself already installed. The Windows JRE is currently around 15MB for the offline version – there’s a 7MB “online” version but my guess is that it downloads more stuff during the install. I suspect that Adobe’s Flash would never have taken off if it had been that large a download.
When I spoke to Sun’s Rich Green earlier this year I recall that he agreed that a small download was important. Maybe I have this wrong, or a smaller runtime is planned for some future date.
It’s interesting that in his official blog post today, Josh Marinacci takes a Java-centric view:
So why am I excited about JavaFX? Because it gives us the freedom to create beautiful and responsive interfaces like never before. This isn’t to say you can’t do it in plain Java. If you’ve been to any of the last 4 JavaOne’s then you’ve seen great interfaces we’ve built. But these demos were a ton of work.
Right; but you could easily build these “beautiful and responsive interfaces” in Flash, both then and now. It’s a question of positioning. Is JavaFX just a new GUI library for Java – which will be welcome, but limited in appeal to the Java crowd? Or a serious alternative to Flash? At the moment, it looks more like the former.