JavaFX – just for Java guys?

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.

Technorati tags: , , ,
VN:F [1.9.18_1163]
Rate this post
Rating: 0.0/10 (0 votes cast)

Related posts:

  1. JavaFX code runs at the speed of Java
  2. Sun’s JavaFX is launched: another go at applets
  3. Have you seen a real JavaFX app yet? Sun’s misleading 100 million claim
  4. JavaFX warns against itself on Macs
  5. Oxygene for Java released: develop for Android and Java runtime with Delphi language in Visual Studio

5 comments to JavaFX – just for Java guys?

  • Hi Tim. This is Josh from Sun’s JavaFX team. The initial download experience is something we are working very hard to improve. Part of JavaSE 6 update 10 (which goes to final release soon), is reducing the download time and startup time of the initial Java install. With improvements in update 10 and more coming in future releases we will get the initial download to half what’s required today (ie, < 4mb).

    Also, modularity is one of the focuses of Java 7. This will let us further streamline the install process. We are also adding patch-in-place so updates will be much smaller.

    Of course the best download is the one you don’t have to make. We have deals with 9 of the top 10 PC OEMs to get the latest Java pre-installed.

    We know download time is important and are working very hard to make Java the best platform for RIAs.

  • tim

    Thanks for the comment Josh. <4mb including JRE + JavaFX is a great goal.

    Tim

  • Tim, also in a similar space (java, client side processing, …) is http://code.google.com/webtoolkit/ – I’ve not had a chance to play yet, but have heard good things about it.

  • Jin Chun

    I think they’ll solve the client runtime part, which is working pretty quickly now in its latest build (applets for example load at about the same speed as swf’s). The beauty is the ability to access the full Java API, as well as the wide ocean of commercial/open source frameworks and libraries. It should be simple enough, for example, to tie together a JavaFX UI with Drools for rule processing integrated with Spring, etc. And with JWebPane integrating WebKit, Adobe Air starts to look silly (have you looked at their native api’s? yuck!). Silverlight and WPF’s advantage over JavaFX is in the ecosystem of 3rd party’s that provide widgets and frameworks, like infragistics, etc, for cheap. Josh, if you are reading this, please ping the JideSoft guys and buy them, OS their whole stack so that the swing labs glacial pace can be replaced with working Swing widgets like real grids, and get someone on the application framework again.

    The tools in the Java for the client are there, but they are just hard! You can still in a singe line, whether in AS3/MXML or XAML/C#, bind a table widget to an XML/JSON Web based service (w or w/o SOAP). That part’s missing. The layer that ties the new JavaFX UI semantics to something on the backend and a community driven library of nice widgets.

    It would also be interesting to reimplement some of the showcase apps for Flex/Air and Silverlight in JavaFX and compare the 3.

    Jin

  • I don’t see having to download the Java runtime as being too much of an issue because it is installed as standard on a lot of PC’s, and has been for some time. The number of computers without Java is comparatively small.

    I agree with Jin – I would like to see a comparison between Air, Silverlight and JavaFX. Not just in terms of which works best for the end-user, but in development too.

    Adrian