Coding By Numbers
Rambling about Java, Swing, JavaFX, Android and iPhone development
Rambling about Java, Swing, JavaFX, Android and iPhone development
Nov 5th
Since I’m effectively relaunching this blog, I thought I would close the loop on JavaFX, which was primarily why I started the blog in the first place. Since the news that Oracle was buying Sun, I’ve not been convinced about the future of JavaFX. In the last couple of months I’ve come to the conclusion that it doesn’t matter what Sun or Oracle does with JavaFX, it’s future as an RIA technology looks pretty bleak anyway. And it’s not alone. Adobe Flash and Microsoft Silverlight are in the path of the same train that is starting to build up a head of steam, namely the combination of HTML 5, CSS 3 and JavaScript. Let’s take a look at the evidence and see why I have jumped to this conclusion!
Two of the biggest proponents of the HTML 5 and associated standards are Google and Apple. Let’s start by looking at their recent behaviour.
About a year ago, Google launched their Chrome browser with the express intent of creating a platform to deliver HTML 5 applications. A few months ago, they announced Chrome OS, a lightweight operating system whose whole user interface appears to be web based. The next release of their Android operating system for mobile devices is also going to feature a HTML 5 browser. Apple have also been making sure that HTML 5 support is in all their products. Version 4 of their desktop Safari browser supports HTML 5 as does Safari on the iPhone. So they are both doing their utmost to ensure that people can use HTML 5.
Google has been re-encoding all the YouTube content in H.264 instead of Flash video. HTML 5 includes a <video> element which will eventually mean that webpages can include video without the need for additional plugins, like Flash Player for example. Apple’s iPhone has special support for YouTube so that the H.264 encoded content can be played, again avoiding the need for a Flash plugin. Apple’s steadfast refusal to allow Flash on to the iPhone is creating a headache for Adobe, as the iPhone becomes ever more popular and web developers are forced to provide Flash free sites (or at least Flash free alternatives) to avoid losing potentially lucrative audience.
The only thing slowing down the adoption of HTML 5 is bickering over the fine details. Everyone agrees that there should be a <video> tag, but no-one can agree which codec(s) should be supported in the standard, meaning that all browsers will have to include them. Most of the arguments are over potential patent claims but the three lead contenders are H.264 (an ITU-T standard), Flash Video (proprietary) and Theora (open source). As well as re-encoding YouTube content, Google has also been trying to buy On2, the company that owns the Flash Video codec (also used as the cross platform codec in JavaFX). Sounds to me like they are hedging their bets!
So two of the most successful technology companies of this millennium would appear to be set on a course to rid the web of Adobe Flash and replace it with standards based HTML 5. If they are making headway against Adobe Flash then the relative minnows of JavaFX and Silverlight stand no chance. Fortunately Sun/Oracle and Microsoft don’t have as much to lose as Adobe, who generate a significant income from Flash related authoring tools. In my humble opinion, they already ought to be thinking about how to leverage their well known and respected tool chain to produce HTML 5 based solutions. I figure that’s their best bet to keep their existing customer base if Flash use starts to decline.
Sadly the same cannot be said for Sun and JavaFX. If it isn’t going to be used for RIAs, what else can it be used for? There’s set top boxes of course, but many of them already use HTML under the hood and HTML 5 will probably do most of what they want. BluRay is another possibility, but you’ve got to figure that the days of physical media are numbered. I think the best bet for JavaFX is as a replacement for the Java language itself. It’s a modern language with some really nice features and would be a worthy competitor to the likes of Scala as the “new” Java. Here’s hoping!