2012 may well be remembered as the year when application developers turned against HTML5. Which will be ironic, as HTML5 has evolved more in 2012 than in any other year since it became a reality. But with companies like Facebook dropping HTML5 in favor of native mobile apps, the hype cycle around the standard has turned. Some developers have become disappointed and disillusioned with HTML5. They have come to believe the myths that HTML5 may be, ultimately, untenable.
Chris Heilmann, principle developer evangelist at Mozilla, aims to bust some of the negative myths that have cropped up around HTML5. In a recent blog post, Heilmann gives an impassioned and pragmatic breakdown of the so-called myths surrounding HTML5. He touches on contentious issues of performance, monetization, developer tools and debugging, offline use and capabilities.
For the most part, Heilmann’s argument is not wrong. His crux is that HTML5 is of the Web and for the Web - and that the Web is everywhere. He leans heavily on the “write once, run everywhere” principle and the problems of “native” apps that are optimized to perform and monetize through a closed application-store model. The HTML5 vs. Native app argument isn't new of course, but Heilmann effectively counters many of today's most popular misconceptions around HTML5 - discoverability, user experience, performance and monetary viability for developers.
This isn't an academic argument. In the long run, the emergence and evolution of HTML5 affects where mobile users get their mobile apps and the perception of how they perform. For the most part, users do not care how their apps were built, as long as they work. But how developers view these choices can change the course of how apps are made, where consumers find them and the tools that app creators choose to use for building for mobile devices.
Pundits like to say that HTML5 app developers are not able to monetize their apps. Heilmann, correctly, disproves this as a general theory.
“Saying that HTML5 has no monetization model is like saying the Web can not be monetized (which is especially ironic when this is written on news sites that show ads),” Heilmann wrote.
There is a nasty little secret hidden here that applies to all app developers, mobile or otherwise: Most apps make no money. For every runaway success (Angry Birds et al.) there are probably a thousand apps that languish with few users and/or no hope of making money. Between iOS, Android, Windows Phone and BlackBerry, there are approximately 1,580,000 (or so) apps - and 80% of them make next to nothing. Only the top 10% considered successful. The Web is a similar landscape. For every Google, there are companies like Microsoft that lose millions every quarter on their online properties. The concept is not that HTML5 cannot be monetized, but rather that it is very difficult to make big money in mobile in general.
Performance & Capabilities
Heilmann contends that HTML5 can perform just as well as native apps, except that closed mobile operating systems do not allow hardware acceleration and integration through the browser to outside apps. This is true - and one reason that Facebook decided to turn away from HTML5.
Fundamentally, the concept of “write once, run everywhere” is easy to achieve in HTML5. It is more difficult to achieve, “write once, perform well everywhere.” HTML5 apps for Web and mobile are often targeted towards a specific platform, such as a certain browser. When those apps are not running on that browser, the performance suffers.
The problem is not a matter of whether or not the HTML5 app can perform, but rather that of user experience. Facebook's HTML5-first vision for mobile meant that the core of its app was built around its mobile m.facebook.com site and then “wrapped” for native stores such as iOS and Android. Many users complained that the Facebook mobile application was nearly unusable on some smartphones, especially for Android users on older devices.
But the onus for HTML5 performance and capabilities really has little to do with the HTML5 development community (presuming a developer’s code is well done, of course) but rather the individual mobile operating systems. It's the operating system and platform providers who need to open up hardware integration and acceleration so that HTML5 developers can tune to them. This lack of cooperation between the OS providers and HTML5 is a key reason that Mozilla is creating its own operating system, the Firefox OS (formerly “Boot2Gecko”) which will be completely Web-based and deployed internationally in 2013.
As for capabilities, Mozilla is recreating many of the custom features of native apps - such as camera, contacts, calendar etc. - with its WebAPI initiatives, which tie a smartphone browser to hardware features.
Mozilla Has An Agenda
It is understandable that Heilmann is intense in his support of HTML5. The capabilities of the technology stack mixed with the obstacles it faces create all the ingredients for an impassioned plea.
But Heilmann has an agenda here. Mozilla started in the late 1990s to counteract the Microsoft Internet Explorer monopoly. That battle has now switched to mobile, with HTML5 the primary weapon in Mozilla’s arsenal. So Mozilla has to rally the troops against the closed platforms. The continued existence of Mozilla depends upon an open Web. As the Web goes mobile, the closed nature of operating systems like Apple’s iOS and its App Store threaten Mozilla to its core.
The fact is that HTML5 is not for everybody. Some developers will gladly take the advantage of the native approach and its closed ecosystem… and laugh all the way to the bank. Then again, native is not for everybody, especially for media brands or large enterprises that cannot or will not invest in the developer resources to create a native app for every platform.
Will Mobile OS Makers Play Along?
Heilmann makes a significant point in noting how closely the future of HTML5 is tied to the goodwill of the native operating systems.
“The main reason why HTML5 is not the obvious choice for developers now is the above mentioned lockout when it comes to hardware. An iOS device does not allow different browser engines and does not allow HTML5 to access the camera, the address book, vibration, the phone or text messaging. In other words, everything that makes a mobile device interesting for developers and very necessary functionality for Apps,” Heilmann wrote.
There is no certainty that the native platforms will move an inch to support pure HTML5 apps (unwrapped for native performance) outside of their own purposes. For Apple specifically, there is little incentive to do so. That's why it makes sense for companies like Mozilla to take its future into its own hands with projects like Firefox OS. Yet there is no guarantee that Firefox smartphones will sell well - and it is impossible to monetize without attracting eyeballs.
When it comes to mobile users, the goal is for none of this to matter. If I want use Firefox OS or HTML5 apps, I need to trust that those apps will work as well as the native versions I am already used to from the closed app store models. Consumers should not even have to know if an app is native or HTML5 Web-based at all. The goal is to trust that any app, no matter how it is made, will work well on your device. With the complex relationship between the mobile operating systems, native app creation and the Web, there is no guarantee of that right now.
That has to change. Outside of the specific Mobile Web App vs. Native App argument and the uncertainties it creates, there is a growing place in app development for HTML5 in the near and long term. The biggest problem – user experience – is conquerable. It will just take more cooperation among the various players to achieve.
Top image from HexGL racer by Thibaut Despoulain.