“Never underestimate the web,” says Google VP of Engineering Vic Gundotra in his keynote at Google I/O this morning. He goes on to tell the story of a meeting he remembers when he was VP of Platform Evangelism at Microsoft five years ago. “We believed that web apps would never rival desktop apps. There was this small company called Keyhole, which made this most fantastic geo-visualization software for Windows. This was the kind of software we always used to prove to ourselves that there were things that could never be done on the web.” A few months later, Google acquired Keyhole, and shortly thereafter released Google Maps with satellite view.
“We knew then that the web had won,” he said. “What was once thought impossible is now commonplace.”

Google doesn’t want to repeat that mistake, and as a result, he said, “we’re betting big on HTML 5.”

Vic pointed out that the rate of browser innovation is accelerating, with new browser releases nearly every other month. The slide below, from early in Vic’s talk, shows the progress towards the level of UI functionality found in desktop apps through adoption of HTML 5 features in browsers. This looks like one of Clayton Christensen’s classic “disruptive innovation vs sustaining innovation” graphs. It’s also fascinating to see how mobile browsers are in the forefront of the innovation.

While the entire HTML 5 standard is years or more from adoption, there are many powerful features available in browsers today. In fact, five key next-generation features are already available in the latest (sometimes experimental) browser builds from Firefox, Opera, Safari, and Google Chrome. (Microsoft has announced that it will support HTML 5, and as Vic noted, “We eagerly await evidence of that.”) Here’s Vic’s HTML 5 scorecard:

The canvas element provides a straightforward and powerful way to draw arbitrary graphics on a web page using Javascript. Sample applications demoed at the show include a simple drawing area and a simple game. But to see the real power of the Canvas element, take a look at Mozilla’s BeSpin. Bespin is an extensible code editor with an interface so rich that it’s hard to believe it was written entirely in Javascript and HTML.
The video element aims to make it as easy to embed video on a web page as it is to embed images today. No plugins, no mismatched codecs. See for example, this simple video editor running in Safari. And check out the page source for this YouTube demo. (As a special bonus, the video is demonstrating the power of O3D, an open source 3D rendering API for the browser.)
The geolocation APIs make location, whether generated via GPS, cell-tower triangulation or wi-fi databases (what Skyhook calls hybrid positioning) available to any HTML 5-compatible browser-based app. At the conference, Google shows off your current location to any Google map, and announces the availability of Google Latitude for the iPhone. (It will be available shortly after Apple releases OS 3.) What’s really impressive about Latitude on the phone is that it’s a web app, with all the platform independence that implies, not a platform-dependent phone application.
AppCache and Database make it easy to build offline apps. The killer demo is one that Vic first showed at Web 2.0 Expo San Francisco a few months ago: offline gmail on an Android phone. But Vic also shows off a simple “stickies” app running in Safari.
(I love the language that Vic uses: “You can even store the application itself offline and rehydrate it on demand.”)

Web workers is a mechanism for spinning off background threads to do processing that would otherwise slow the browser to a crawl. For a convincing demo, take a look at a web page calculating primes without web workers. As the demo says, “Click ‘Go!’ to hose your browser.” Then check out the version with web workers. Primes start appearing, with no hit to browser performance. Even more impressive is a demo of video motion tracking, using Javascript in the browser.
During his keynote, Vic was joined on stage by Jay Sullivan, VP of Mobile at Mozilla and Michael Abbot, the SVP in charge of application software and services at Palm. Both showed their own commitment to working with HTML 5. Jay expressed Mozilla’s commitment to keeping the web open: “Anything should be hackable; anything should be scriptable. We need to get out of plugin prison.” Javascript rendering in Firefox 3.5 is 10x faster than in Firefox 2, with support for video, offline storage, web workers, and geolocation.
Michael showed how Palm’s WebOS relies on HTML 5. “You as a developer don’t need to leave your prior knowledge at the door to develop for the phone.” He demonstrates the power of CSS transformations to provide UI effects; he shows how the calendar app is drawn with Canvas, how bookmarks and history are kept in an HTML 5 database. Michael emphasized the importance of standardization, but also suggested that we need new extensions to HTML 5, for example, to support events from the accelerometer in the phone. Palm has had to run out ahead of the standards in this area.

If you’re like me, you had no idea there was so much HTML 5 already in play. When I checked in with my editors at O’Reilly, the general consensus was that HTML 5 isn’t going to be ready till 2010. Sitepoint, another leading publisher on web technology, recently sent out a poll to their experts and came to the same conclusion. Yet Google, Mozilla, and Palm gave us all a big whack upside the head this morning. As Shakespeare said, “The hot blood leaps over the cold decree.” The technology is here even if the standards committees haven’t caught up. Developers are taking notice of these new features, and aren’t waiting for formal approval. That’s as it should be. As Dave Clark described the philosophy of the IETF with regard to internet standardization, “We reject: kings, presidents, and voting. We believe in: rough consensus and running code.”

Support by four major browsers adds up to “rough consensus” in my book. We’re seeing running code at Google I/O, and I’d imagine the 4000 developers in attendance will soon be producing a lot more. So I think we’re off to the races. As Vic said to me in an interview yesterday morning, “The web has not seen this level of transformation, this level of acceleration, in the past ten years.”

Vic ends the HTML 5 portion of his keynote with hints of an announcement tomorrow: “Don’t be late for the keynote tomorrow morning.”

Additional Resources

Here is a convenient list of the HTML 5 demo apps shown in the keynote this morning. Be sure to look at the page source for each of the applications.

New developer features in Firefox 3.5

To learn more about these HTML 5 features, check out these tutorials from the Opera, Mozilla, Palm, and Google teams (plus a few others):

Canvas: HTML 5 Canvas: The Basics
Painting with HTML 5 Canvas

Video: A Call for Video on the Web
HTML 5 Video Examples

Geolocation: Track User Geolocation with Javascript

Web cache and database: Palm WebOS HTML 5 DataBase Storage
HTML 5 Features in Latest iPhone Applications
Gmail for Mobile: Using AppCache to Launch Offline

Web workers: Using DOM Workers