Keith Dawson: Develop in the Cloud
This story was written by Keith Dawson for UBM DeusM’s community Web site Develop in the Cloud, sponsored by AT&T. It is archived here for informational purposes only because the Develop in the Cloud site is no more. This material is Copyright 2012 by UBM DeusM.

On the Web Platform

Apps can't replace it, and it shouldn't try too hard to act like apps.

For all their excellent qualities, native apps can't replace the Web platform; and Web apps must resist warping the platform too far in an effort to be like the natives.

The former editor of the HTML5 spec, Ian Hickson, posted a brief piece on Google+, laying out what it would take to replace the Web as a platform. What is the necessary and sufficient list of characteristics that has allowed the Web to become ubiquitous? According to Hickson, they are five:

  1. Be completely devoid of any licensing requirements. The upshot of this requirement is that whoever wants to develop something to replace the Web won't be able to profit from it, ever.
  2. Be vendor-neutral. The platform developer has to take input from absolutely everyone, from competitors to end-users to governments.
  3. Be media-neutral and device-neutral. The platform has to work with devices of all sizes (smartphone to wall-sized screen); with different output modalities (screen, braille, screen-scraped text-to-speech); and with any devices and modalities that get invented in the future.
  4. Be content-neutral. A challenger platform has to describe and support experiences from report to e-commerce to video to multimedia to book to game.
  5. Be radically better than the existing Web. As Hickson says, "Faster, easier to author in, more usable, more features, more monetizable, etc."

Hickson lists the projects that have attempted or are attempting to supplant the Web platform. The record is not pretty. Paraphrasing from his post:

Microsoft's .NET only did 4. XHTML2 and XForms only did 1. and 3. The Semantic Web so far has only done 1., 2., and 3. Adobe Flash and Adobe Air didn't manage any of 1.-5. Java didn't manage any of 1.-5.

There is an extensive thread of thoughtful comments attached to Hickson's post, but none end up convincingly extending his list of the requirements for doing better than the Web platform, or arguing successfully that any other platform has come close to doing so.

Web app mistakes
While the Web may be irreplaceable at the present time, that doesn't mean it has not been under strain from the rise of walled-garden app environments, iOS and Android in particular. The Web was developed as a data and a content platform on which documents could be built. It is somewhat remarkable that the platform has achieved extension sufficient to support Web apps, in addition to Web documents.

Mike Davies has a long and detailed post on the various ways the Web platform has been mishandled and misused in the past -- and right up to the current day -- in pursuit of better coverage for Web apps.

He goes through the history of SproutCore (2008), on which Apple's late, unlamented Mobile Me was built; Bespin (2010), which essentially tried to re-implement the browser inside HTML5's canvas element; and the recent spate of Hash Bang URL Web applications (2011), of which the "New Twitter" was a leading example, and not in a good way.

Davies's conclusion is that any technology or wannabe platform that strays too far from Web development best practices will eventually be forced to come back around to them. For example, "All high-quality and efficient Web development paths go through the forest of progressive enhancement eventually." These best practices Davies enumerates as "a separation of concerns (for stability), progressive enhancement (for wide device compatibility), graceful degradation (for robustness), [and] accessibility (as an extreme usability utility)."

Other technologies provide superior experiences in certain points of the territory the Web covers: a mobile screen, a game console, a printed document. The Web is the only platform that stretches to cover them all, and for better or worse, the Web and its descendants will be with us for a long time to come. Let's use it well and wisely.