Sun introduced JavaFX today at JavaOne in San Francisco. Basically (from the web perspective), JavaFX is Sun’s attempt at a Rich Internet Application (RIA) framework. Like MS Silverlight, Adobe Flex, and the many AJAX frameworks, JavaFX promises to make creating beautiful and user friendly web applications easier. I spent a couple of hours this evening messing with the OpenJFX tutorial and looking through the reference. Here are my first impressions.
The studiomoto demo and Tesla Motors demo outshine the Silverlight demos in my opinion, and they rival most of the Flash you see nowadays. I have no clue how to program Flex so I cannot compare it to Silverlight or JavaFX, but I have looked at the Silverlight code and I’d say its roughly comparable in ease-of-use to the JavaFX API and syntax.
JavaFX is way simpler than Swing or AWT programming and creating applets for download to a client browser. The syntax is relatively simple and can be picked up by an experienced Java programmer in no time. And the fact that you can use the power of the Java language definitely makes it a nice platform for client side web development.
There are a few things that still bug me. And I can tell by what I’ve read so far that they still bug a lot of others as well.
The fact that you still have to download and install an entire JRE to run JavaFX sux. Sure, its simpler than it used to be, but its not like ‘installing’ flash or Silverlight. Both of these browser plugins are easily installed with a simple click or two from within the ‘browser space’. With the JREs its just not as simple and can be intimidating to the common internet user.
The second is the footprint of the JRE. Flash and Silverlight come in pretty small – well under 5 MB each. The JRE comes in waaay higher . Not a good differentiator.
Third, and directly related to the second is the startup time. I’m sure it will improve soon, but the demos are pretty painfully slow to start up. To me, the Silverlight demos are slow to startup too. Flash is really quick relative to the others.
I have to wonder about AJAX at this point – along with a few other bloggers the last few weeks. Poor old AJAX has to work with the crud its given in the browser’s DOMs/APIs while Flex, Silverlight, and JavaFX will have their own well-defined and well-equipped runtimes. It may slip a bit, but I’d bet that the power of Yahoo and Google will keep it as a viable option for RIAs.
So, as I said, these are very early impressions – and I am by no means a web client side UI expert. I will be toying around with it a lot in the near future to see how it handles. I wouldn’t call myself a Java fanboy, but I am a Java fan since thats the primary language I use to earn a living – so I would love to see this succeed. I just hope its not another attempt at making ‘applets’ easier to deliver (AKA webstart).