I am an unabashed partisan of the Web — its architecture, culture, and content. I’m proud to have played a very small part in shaping bits of the machinery and having contributed probably too many words to that content But as for HTML5? It’s a good enough thing to the extent it turns out to work. But nothing terribly important depends on it.
Let me start with some anecdotal evidence.
Item: I got mail from really well-known Web technologist — his competence is not in doubt — making his first foray into mobile development. He wrote: “I’m trying to avoid appstore hell by developing rich HTML5 apps, but the performance on iPhone is shoddy whenever network IO is going on, and I seem to be able to crash the browser on our departmental Nexus One with such frequency it's not even funny. I think I've got a lot of optimization to do to my app to dial down network access, but I just wondered what the jungle drums say about HTML5 as a sensible approach for delivering apps in 2010.”
Item: The HTML specification process is controversy-laden, immensely ambitious, and is attempting to boil at least one ocean. There is no guarantee of success, no matter how you choose to measure it.
Item: Apple and Adobe get into a major public pissing match; the club each side is bashing the other with is prominently labeled “Open” and “Web”.
Item: Ben Ward writes Understand The Web which rambles all over the place, has an egregious grammar botch in the first sentence, but makes some really important points.
What’s The Web? · I wear my biases on my sleeve as one of those who helped write The Architecture of the World Wide Web. The Web is a tripod, depending critically on three architectural principles:
Pieces of the Web, which we call Resources, are identified by short strings of characters called “URIs”.
Work is accomplished by exchanging messages, which comprise metadata and representations of Resources.
The representations are expressed in a number of well-defined data formats; you can count on the message data to tell you which one is in use. It is essential that some of the representation formats be capable of containing URIs. The “Web” in WWW is that composed by the universe of Resources linked by the URIs in their representations.
That’s all. You notice that there’s nothing there that depends crucially on any flavor of HTML. Speaking only for myself, an increasingly large proportion of my Web experience arrives in the form of feed entries and Twitter posts; not HTML at all, but 100% part of the Web.
On Flash · This may be a side-trip, but anyhow: I entirely loathe Flash but by any definition it’s part of the Web. It works just fine as a resource representation and it can contain URI hyperlinks.
What’s not to like, then? Well, the user experience, which in my experience is fourth-rate for anything but games; No “Back” button, feaugh. And of the course the fact that it remains essentially proprietary.
So, I use a Flash-blocker every day, and I am not a friend of Flash inside Google, but none of my arguments have anything to do with being part of the Web, or not.
Native Applications · A large proportion of the native applications on iPhone, and on Android, and on Windows, and on Mac, and on Linux, are Web applications. They depend in a fundamental way on being able to recognize and make intelligent use of hyperlinks and traverse the great big wonderful Web.
Those apps that are not so enabled are in general the worse for it.
So whatever you may think of native applications, please don’t try to pretend that they are (or are not) necessarily good citizens of the Web. Being native (or not) has nothing to do with it.
Why HTML5 Then? · Obviously, there are two reasons for all the white heat and white light around HTML5. First, HTML-based software has historically provided a better user experience compared to what went before. Everyone in our profession knows that building a good user interface is maddeningly difficult. The discovery, in the early Web browsers, that reasonably-typeset text which embedded simple forms and hyperlinks, and came equipped with a “Back” button, hit the biggest 80/20 point ever in the history of User Interfaces, couldn’t have been predicted by anybody; but it’s as true today as ever.
Second, writing software is slow and expensive; HTML5 offers the promise that you can do less of it, go faster and cheaper, just because it works across many platforms.
And Your Point Is? · HTML5 promises to broaden the class of application problems you can solve with HTML, providing a good user experience while saving time and money. But that’s all; it’s not better because it’s “Web Technology”, it’s better because it’s better.
Except when it isn’t. Right now, there are certain classes of applications, particularly on mobile devices, where you’re going to get a better result by building a native app. Maybe even by building two or three native apps, for iPhone and Android and webOS. This is entirely orthogonal to the “Webbiness” (or not) of the technologies.
And another point: building a really hot HTML5 application that takes advantage of the nice new features is not exactly easy. Even assuming that you’re using one of the dozens of clever toolkits, it’s still not a slam-dunk. In fact, compared to the level of support and tooling you get from XCode on the Apple side or the various pieces of Android IDE-ware, HTML5 development is a major pain in the ass.
Let’s Do Scenarios · What’s the best thing that could happen? Some widely-interoperable dialect of HTML5 becomes broadly usable quicker than expected, and we get decent tooling around it quicker than expected, and the nature of the devices evolves slowly enough so as not to outpace heavyweight browser technology. In this world, software user experience is on average better and development cost is on average lower.
The worst thing that can happen? HTML5 is holed below the waterline by some combination of interpersonal toxicity and corporate land-grabs and intellectual-property litigation; doesn’t become a really appealing application platform for a few more years.
But the best case doesn’t help the Web, as such, all that much, and the worst case doesn’t really damage it. Because every interesting application, more or less, is already a Web application.
Once again, HTML5 isn’t better because it’s a “Web” technology. It might prove to be a user-experience and developer-productivity win. That’d be nice. But I’m neither holding my breath in anticipation nor losing sleep over delays and obstacles. The Web will do OK.