Why HTML5 is in trouble on the mobile front
Summary: HTML5 promises great things for smartphone developers, but is yet to deliver in full. That leaves developers with a tricky choice: to build for openness or go with what works now.
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.)
Standards
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.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback
phonegap ?
HTML5 is in trouble everywhere
Until I can watch, "The Daily Show with Jon Stewart" ...
Apps and the Web need not be mutually exclusive
Take a calender App for instance. I may wish to write a new diary entry in at a meeting (with airplane mode on), or on a plane, or somewhere without Internet access. I simply would not want to be forced to use a HTML5 Internet app to simply enter an appointment, or check an appointment.
However, once Internet connection is resumed, it can sync to the cloud, and I can access the full app from the web.
I think Sir Tim is barking up the wrong tree with his demands that everything should be HTML5 only, as my example clearly demonstrates.
A HTML5 app does not require live access to the net
Your example does not demonstrate that....
The only real advantage of HTML5
As mentioned before with DRM, I don't buy into their security model. Javascript has been one of the most insecure and largest attack vectors for keyloggers and malware since it's existance. Plus no one 'really' likes writing Javascript (hence jQuery and MVC frameworks cropping up).
And yes, it just doesn't have the performance of native apps, and SVG has a high learning curve which quite frankly just isn't that attractive.
Native UI's are more appealing to users (and myself). No matter how much you spend on polishing a HTML5 site's design, it still 'feels' like a web site. There's a popular stigma that you don't do any real work on a web site (in the consumer space).
thoughts
Unfortunately, URLs are part of the problem. They often long and complex, and they sit there in a bar taking up space. Web apps have to live with the chrome of the browser, even if it's never used in the app itself.
" 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)."
Meh, don't care much for Wooga, don't even know who they are, really. But they make good points.
Yeah, most people probably don't know how to add a web app to the home screen. And typing in a URL is a pain on the mobile keyboard. So yeah, people do prefer apps.
Performance cannot be fixed with the current generation of web technologies, and even HTML5 doesn't really fix it.
You've got to parse the HTML, bring in assets like images, parse other languages like CSS, and of course parse and JIT compile JavaScript. It's a lot of stuff to just display a web page, and it all has to be streamed over a network connection that may or may not be working well at any given time.
No, a convoluted process like this will never, ever, be as fast as native code.
Not to mention native code can take full advantage of the hardware, while web technologies tend to be lowest common denominator stuff. Got a phone with fancy new sensors and fancy new features? Native apps will support them first. Web apps may or may not ever support them.
Connectivity is very true. While the tech theoretically exists to keep a copy of a web app in storage, it's all too often broken and unused. I don't think I've ever had a good experience with a web app offline.
Stirring the pot
Imagine a world where you wanted to get on LinkedIn, but you had to use a Dell computer to do it. Or suppose you wanted to buy something from Amazon but you had to use an Amazon computer to do it.
Would the web be as rich and amazing as it is today if Microsoft had owned it in 1995, and controlled what could go on it, and took a 30% royalty of all commerce transacted on it? The answer is, no.
Mobile is the future of the computing, that's pretty clear.
Can we allow Apple and Google to control and excise profit from the basic platforms that future computing will run on ? I don't think so.
THAT is why HTML5 is so important - it's the only viable alternative to walled gardens. Companies like appMobi have been filling in those "gaps" in HTML5 for 2-3 years and with Moore's law and advances in browser tech, the best HTML5 apps are now indistinguishable from native apps.
The developers chose
The reality is that, Apple's platform is probably the most open platform out there. They've made available a huge API to all developers, accessible from C, Obj C, and the various HTML techs. iOS frameworks are mature and capable, including WebKit which gets faster and more features with each revision.
thoughts
Not really. Still have the URL bar. JavaScript has improved in leaps and bounds, but JIT is still JIT no matter how good you make it, and it'll never be as fast as a full compiler.
And networks continue to be spotty, with the last mile remaining an open problem.
"Imagine a world where you wanted to get on LinkedIn, but you had to use a Dell computer to do it."
Wouldn't be any better than today. LinkedIn never got me a job. Monster seems to be far more successful.
Besides, I'm not saying that the internet is bad. Not by any means. But, by the same token, it isn't a cure-all either.
I think going extreme on either direction is a recipe for disaster.
"and with Moore's law"
Moore's "law" is a joke. It can't continue indefinitely, and frankly we haven't been keeping up with it recently. It's an observation one guy made about transistors, never really meant to be a hard and fast law.
Not to mention Moore's "law" would apply equally to native apps, so they will always maintain their lead. So it's a useless argument anyways.
" the best HTML5 apps are now indistinguishable from native apps."
Which ones? I haven't seen any. It all breaks down if you pull the plug. Even the HTML 5 local storage stuff is a joke - it's never been reliable. I've had countless times where an HTML 5 app that supposedly is available locally breaks because it can't access its data, or because the browser forgot to keep a local copy of the app.
And frankly, the features of online apps are underwhelming. None of them are as rich or powerful as their desktop equivalents. Not to mention native apps can take advantage of all of the features of the OS. A native app can show itself in the taskbar or in the notification area; a web app can't. A native game can use my Logitech joystick; a web app can't. A native app can access any of the USB devices connected to my system; a web app can't.
Same would go with a phone - if a phone has a great new feature, be it a hardware or OS feature, a native app will be able to use it immediately, while a web app with have to wait around for browsers to support it and for standards bodies to standardize it.
Web apps are lowest common denominator. They can't use all of the OS features or all of the devices connected to the computer.
Google is a problem....
Serious Question
Easy~~ just go native with Adobe Flash
There is a reason people choose native apps
HTML5 is a document markup language. It's not meant for apps with even basic rich experiences. It hasn't shown to do better than Flash/AIR or native apps in these areas. Works great for blogs and news sites though. ;)
Native or HTML5.
To read the details: http://bit.ly/10Tw75h