Recognising the significance of RIAs, Sun is fighting
Silverlight and
Flash with
JavaFX, announced at its JavaOne conference. Details seem a bit scarce at the moment, and there doesn't seem to be any demos going around yet. It'll be cross platform, and will use a variation of the Java language, the new JavaFX script.
Hopefully they'll improve the runtime, which for most of us who have been using the net for a while will know how much of a pain it is - large size, installation conflicts, browser freezes as it loads, random freezes etc. That aside, I hope they'll make the UI elements look better - when Java apps actually manage to run, the UI look and feel is traditionally horrible - and make it more suited for animations - even though there are thousands of animated applets out there simulating physics and maths scenarios which generally have non-anti-aliased graphics and clunky animations. There are some Java apps that look good though, probably with extra coding or non-default bits, like the awesome HTML/CSS/JS IDE
Aptana.
It's odd that they're only now acting, given it has always had the philosophy of "write once, run anywhere". In fact, they had the basis for Flash (applets) and Apollo (Java Web Start) long before either came along. In comparison with Silverlight and Flash, it doesn't seem to be offering much more to the table, apart from giving Java developers a foot in the RIA market. Silverlight at least tries to give non-Microsoft developers a go, supporting Javascript, Python and Ruby and possibly others. Others have noted that it currently lacks a designer component that both its main competitors have.
JavaFX however has two trump cards the other two don't have. Firstly, it is open source. As much as I hate them, a lot of developers are hellbent on using only open source tools so this is finally one they can consider. (I rather use the most appropriate tool for the job - open source may be a factor, but a lot of the times it's not.) This factor is not to be underestimated, in fact I think by open sourcing Java and JavaFX, it will remove a lot of the stigma attached to it and possibly lead to a resurgence. It's a very good move on Sun's behalf.

The other trump card is Java's massive mobile reach. Although JavaFX Mobile is incompatible with the Java Micro Edition already on millions of phones, Sun obviously has the connections needed to get JavaFX Mobile into phones. JavaFX Mobile (see right, from
Jonathan Schwartz's blog) is more like a platform (very iPhone-esque too) rather than simply a runtime on a mobile, and it apparently removes a lot of the inconsistencies across phones too, so apps can truly run on any phone, but that remains to be seen. What does this have to do with RIAs? Well most RIAs will eventually have a mobile version, and if the existing developers can reuse code and not have to learn something else it'll let them concentrate on making their app better.
More analysis here:
http://blog.digitalbackcountry.com/?p=798http://blogs.zdnet.com/Stewart/?p=365http://blogs.zdnet.com/Burnette/?p=306http://www.eweek.com/article2/0,1895,2127458,00.asphttp://blogs.sun.com/jonathan/entry/when_not_whereJavaFX is missing something else too - a cool logo! Java in general has the coffee cup, but surely JavaFX is significant enough to warrant its own logo.
There's rumours out there that Apple is doing something with Quicktime too to enter this space - in fact you can do basic stuff in it already, just look at what Apple does when you open up Quicktime and get the trailers screen. It's already got wide adoption too, given that its bundled with iTunes. Interesting times... hopefully there are enough bases covered that no one else feels the need to start another platform - the masses of plugins are going to cause confusion sooner or later.
P.S. Sorry if you tried to access the site in the last few days and got an error - my web host was upgrading server software and I needed to give my site a quick reset before it worked again.
UPDATE (13/5/2007): Eric Trant pointed out the
developer site for JavaFX in the comments - some nice stuff there, thanks! It seems that JavaFX is designed to run within the latest version of the Java Runtime Environment, that is it doesn't require a new plugin to be installed, which is good news. But this puts more pressure on the Java guys to massively improve the installation and usage experience of JRE. This is different to Microsoft's approach, where they created a subset of the main runtime environment for browsers. In some ways, I like the Microsoft approach better because the download is that much smaller - when you make the user wait for the plugin to download/install before they can view the content, speed matters.
I'm still not 100% sure on their intentions, but it seems like JavaFX is for building out-of-browser RIAs, a la Apollo, rather than in-browser ones like Flash and Silverlight. Certainly the demos they have on their site indicate that. I have to say though that I'm quite impressed at the demos - probably the best looking Java apps I've seen. In fact they could nearly be mistaken for Flash apps - nice design, responsive, smooth animations. The launching experience was quite smooth too, but I haven't checked out Apollo yet though. The demos didn't demo embed fonts, opacity changes or the ability to resize content to fit the window though, which makes me wonder if its possible or not - these are fairly basic capabilities for all the others. Nonetheless, if they pick up the game with the JRE, we could well be seeing more of these on desktops given the open-source factor, plus the massive legions of java devs out there.