HTML5 is supposed to be the next big thing. It represents the point at which the web standard will step up as a viable alternative to platform-specific code. But, if it's truly going to succeed, it will need to prove itself on the smartphone.
A couple of weeks ago, Sir Tim Berners-Lee gave an inspiring speech in which he championed HTML5 — though as he is the founder and chief of the W3C, you'd rather expect him to.
Berners-Lee attacked native smartphone apps — as he has done before — for taking information out of the general circulation provided by web technologies.
"If it's not a web app, it doesn't have a URL, and so it means I can't talk about it. We can't all decide whether you're making sense or not," he told the audience at Telefonica's Campus Party event in Berlin. "Native apps are taking away from the web. The good news is web apps are putting it back."
HTML5 is currently being stabilised, the web inventor added, and a lot of work is being done around security and access control.
All true — but it's not as straightforward as that.
Losing for now
At least as far as mobile devices are concerned, HTML5 is losing. It's certainly got a future — HTM5 is the foundation of Mozilla's Firefox OS, for a start, and HTML5 apps do work on Android and iOS. But right now, it's often simply out-performed by its rivals, particularly where the app is one that needs to deliver speed or a familiar app-like experience.
"Native apps are taking away from the web. The good news is web apps are putting it back" — Sir Tim Berners-Lee
Consider the evidence. In June, German social games developer Wooga abandoned its HTML5 efforts, citing problems such as discoverability (people aren't used to setting up links as homescreen icons), performance (native apps are faster), and connectivity (HTML5 apps usually require an internet connection to at least load, if not use).
That move was a blow for Facebook, which was rather keen on HTML5 as a way of wresting some platform control from Apple. Of course, Facebook went on to ditch the HTML5 interface for its own iOS app. The result? A much faster app.
Then we have the DRM (digital rights management) problem with multimedia content. While many people are opposed to DRM, broadcasters tend not to be in their ranks, because that would involve irking their content suppliers.
HTML5 does not in itself support DRM for video. This may explain why last week we saw the BBC and others force Adobe to return Flash Player, which does allow proper DRM, to the Google Play store in the UK.
Yes, the BBC uses HTML5 to deliver video to the iPad iPlayer app, but it does so in a way that it cannot yet do with Android. (Non-jailbroken iOS devices provide their own protection against the ripping of such streams.)
The underlying issue is that HTML5 is a proper standard, being developed by multiple stakeholders.
I hesitate to call this a 'problem', because that's how standards are and how they mostly should be made. But it does put the nascent technology at a strong disadvantage against platforms that are more directly controlled and easily progressed.
This is a worrying phenomenon, and Berners-Lee is right to bang the HTML5 drum. The general public is sleepwalking into a locked-in, locked-down future.
However, his pleas will fall on many deaf ears. Most developers who quite reasonably want to make money now will develop for iOS first, then Android, then maybe Windows Phone.
Why, at this point, should they think of addressing HTML5 early on? The best reason is its cross-platform nature: but right now, HTML5 apps generally get out-performed on each platform by native apps.
Two things could change that. One is BlackBerry 10, although I am more than sceptical about RIM's survival chances. The other is Firefox OS. This is a wild card — it could really take off in emerging markets, or it could be crushed by Android's low end.
I'm not saying HTML5 is dead on smartphones. Far from it. It's working now, and it will only get better.
But it is at risk of becoming a fringe effort.
UPDATE (Thursday morning): I'm replying to the comment below marked 'Serious Question', and putting this in as an update rather than reply because I think it really is an important point, and one that should be taken into consideration by many people. TL;DR version: needs vary.
Steve2424, if HTML5 works for you, then go for it. As I said in the article, it does work on phones, just not as well as native apps tend to. This will improve over time, and how tolerant you are of waiting is specific to your circumstances.
An audience such as yours will (I think) be less demanding of fluidity and performance than teens or adults, and a virtual world for kids is (certainly in its early days) about as good a case for HTML5 as you could find: cross-platform, always relying on connectivity, and not overly resource-intensive.
In the future, you may wish to rebuild your apps in native code, depending on how things work out. But for starting out with the sort of project you're talking about, I'd say HTML5 is just what you need.