Mark Zuckerberg admits Facebook was wrong to bet on HTML5 for its mobile app. Indeed, while the previous version was a mere wrapper around HTML code, the latest iOS app is much improved, faster, nimbler. Facebook's CEO courageously admits the error, changes course, and promises to ship an equally native Android app in the near future.
A fresh set of broadsides from the usual suspects predict, with equal fervor, the ultimate success/failure of HTML5/native apps. See, for example, Why Web Apps Will Crush Native Apps.
This is bizarre.
We don't know what Zuckerberg and the Facebook technical team were thinking, exactly, when they chose to take the HTML5 route, but the decision was most likely guided by forces of culture and economy.
Even as the Smartphone 2.0 era dawned in late 2007, there was no reason to jump the Web app ship: Smartphone numbers were low compared to PCs. And I'm guessing that when Facebook first looked at smartphones they saw "PCs, only smaller". They were not alone.
Then we have the good old Write Once Run Anywhere (WORA) refrain. Developing and maintaining native apps for different devices is time-consuming and expensive. You need to hire separate teams of engineers/designers/QA, experts at squeezing the best performance from their respective devices, educing the most usable and intuitive UI, deftly tracking down elusive bugs. And even then, your product will suffer from "feature drift": The ostensibly separate-but-equal native apps will differ in subtle and annoying ways.
HTML5 solves these problems. In theory.
In practice, two even more vexing dilemmas emerge: Performance and The Lowest Common Denominator.
Mobile users react poorly to sluggish performance. Native apps have more direct access to optimized OS modules and hardware features...which means better performance, faster, more immediate interaction. That's why games, always looking for speed, are almost universally native apps, and it's why all smartphone vendors promote native apps, their app stores sport hundreds of thousands of titles.
For the Lowest Common Denominator, consider a player piano that can read a scroll of eight parallel punched hole tracks, a maximum of eight simultaneous notes. You want to create richer music, perhaps on an organ that has multiple ranks, pedals, and stops? Sorry, we need your music to play everywhere, so we'll need to enforce the eight note standard.
In the world of smartphones, sticking with the Lowest Common Denominator means trouble for new platform features, both hardware or software, that aren't available everywhere. A second camera, a new sensor, extended graphic primitives? Tough luck, the Web apps can't support them. The WORA approach stands in the way of creativity and innovation by demanding uniformity. This is especially wrong in a world as new, as fast-changing as the Smartphone 2.0 universe.
Pointing to the performance and lowest common denominator problems with the WORA gospel shouldn't be viewed as a criticism of HTML5. This new (and still evolving) version of the Web's content language provides much improved expressive power and cleans up many past sins.
Also, there are usage scenarios where Web apps makes sense and run well across several platforms. Gmail and Google Docs are prime examples, they work well on all types of PCs and laptops… But Google took pains to write native Android and iOS apps to provide better access to Google Docs on leading smartphones.
Forget facts and nuance. "It Depends" isn't as enticing a headline as the fight between Right and Wrong.