Books I have co-authored

The HTML5 hype – time for a reality check

The hype created by the promise of HTML5 has almost reached fever pitch during the last quarter. With HTML5/CSS3 it will be possible to run most types of applications directly in the “browser” and the need to install apps that execute native code will be a thing of the past. HTML5 can run from a cache in your smartphone/tablet/PC even if you are offline and the app can access the phone’s GPS, compass, accelerometer, touch recognition and native video/audio control. App developers will no longer need to develop separate native versions for iPhone, Android, WP, Blackberry, Samsung/Bada, and WebOS. Just write once in HTML5 and run everywhere.

There is truth in all this and HTML5 is a great technology. But as usual during the peak of inflated expectations people tend to forget the limitations. HTML5 is still an immature technology. The final draft will be finished in mid-2011 and the W3C recently stated that the formal standard decision will be delayed until 2014. When people actually start using HTML5 the experience will most likely be underwhelming as developers are faced with the limitations of the technology. (This view is supported by comments from industry conferences.) Older handsets will most likely not be able to run full HTML5 web apps, which kind of defeats the vision of universal access, at least for the near future.

Native apps will always offer better performance, better UI/UX, and better integration with the device hardware. For example, HTML5 does not support augmented reality. HTML5 will, over time, be able to close the gap but if we assume that the native app platforms continue to develop, the goalpost will be moving as well. Ecosystem owners (Apple, Google, etc.) will of course work to make their native development environment as pleasant as possible to work with. In addition, cross-platform tools in the native environment will reduce the effort of porting from one platform to the other.

What the market tends to forget is that the fundamental trade-off between standardization and flexibility will not go away. By complying with the HTML5 standard, handset makers and web app developers will be unable to differentiate outside the limits set by the standard. It is inevitable that one global standard will not be fully capable of adapting to a highly heterogeneous base of various screen sizes, handsets, tablets, etc. Once a committee-based standard is finalized, innovations and new product features that are introduced after that point will not be included until the next upgrade of the standard. Apps will be better at taking full advantage of device variation and new functionality.

I doubt vendors will be able to resist the siren song of differentiation. When they give in to this temptation, the evil twin of differentiation – fragmentation – will rear its ugly head. This fragmentation will either undermine HTML5 as a universal standard (which will make it less attractive in the same way as Java ME), or be expressed in the form of more native apps.

Another fundamental trade-off in software is between raw performance and developer convenience. Coding in high level languages is easier for less experienced developers and the pool of HTML/JavaScript developers is much larger than the number of experienced C++ developers. It will be cheaper and easier to develop in HTML5 but performance will have to be sacrificed. For less advanced applications this might be a good trade-off but it is a trade-off nonetheless. Efficient low level coding also translates into lower battery drainage, which is important for smartphones.

In many cases it will be better to have a HTML5 web app than no app at all. But if high performance is critical, native apps will be the obvious choice. Performance is not just relevant in obvious areas such as games. If users expect touch-based smartphone apps that don’t freeze when browsing or scrolling it might be a critical competitive differentiator for all apps.

As pointed out by Forrester, this entire “either/or” scenario with HTML5 vs. apps is driven by vendor politics. Although I think that another strong driver is the large community of web developers who find C programming too hard. These web developers will gladly embrace HTML5 as a way to enter the mobile marketspace.

HTML5 is pushed by Google, Microsoft, Facebook and Apple. Continued browser dominance is critical for Google’s ad business. Microsoft and Apple want to kill Flash. Facebook wants universal access. But actions speak louder than words; Google is actively recruiting app developers and releasing more of their own services as apps. For example, Google Voice, Google Places, and now also Google Translate. (Google Earth is the most widely known example despite it having been around for years.) Today large players that quickly want to reach the market with their services are developing native apps when the functionality demands it, in spite of the pro-HTML5 rhetoric.

Comments are closed.