The beardier parts of the web-o-sphere have been abuzz about HTML5, the next version of the language that powers our internet. Will it revolutionize web apps? Will it kill Flash video? Will it fix our gimpy iPads? Yes... and no.
The tech press recently transformed HTML5 from a quiet inevitability to an unlikely savior: When YouTube and Vimeo started testing it, it's was invoked as a Flash-killer, and the emancipator of web video. When Google used it to design a new Google Voice web app, among others, it was framed as the murderer the of the OS-specific application. When the iPad was announced with no Flash support, HTML5 was immediately pegged as a salve, not to mention a way to get around the "closed system" of Apple's App Store.
It doesn't take much imagination to draw these stories into an appealing narrative about how the app-less, plugin-free, totally web-based future is just a browser update away. The thinking goes, somewhere in this impenetrable 125,000-word published standard, you'll find the answer to the internet's every ailment: its clunky, proprietary plugins, its stunted web apps, its fundamental shortcomings as a platform for rich media. At the heart of each of these theories lies a grain of truth, but none of them are totally—or even mostly—true.
Here's what's really going on. HTML is already working its way into the underpinnings of web apps you use every day, making them faster and more stable than those relying on Java or other plugins. They're more like real apps. It's helping us inch closer to the dream of having real applications available at all times, on any platform.
HTML is also setting forth a vision of media—specifically video—that doesn't rely on crashy, resource-intensive proprietary plugins. Look in your plugins folder, you will probably see four video plugins at a minimum. HTML is a standard with an optimistic view of the future: You launch your browser, and whatever site you visit, whatever media you choose to play, your browser just magically supports it, without the frustration, confusion and added instability of a plug-in.
But at heart HTML is just a framework, a glimpse, and an ideal: Its real effect on the internet continues to be defined by the companies and web developers who choose to adopt its many pieces—and it is further shaped by those who don't.
The Basics
Before we get into what HTML5 means, we have to talk about what it is, and to talk about what it is, we need to talk about what it's built upon.
Hypertext markup language, or HTML, is the language underneath every web page you've ever been to. The language, along with its various complementary technologies (see: CSS, Javascript), has become immensely complex over the years, but the concept is simple. HTML is what turns this:
Into this:
It's basically a set of instructions that a website hands to a browser, which the browser then reads and converts into a formatted page, full of text, images, links and whatever else.
Here, try this: Right-click anywhere on this webpage, and click "View Page Source," or "View Source," or something to that effect. Your eyes will be assaulted with a wall of inscrutable text. You'll see evidence of syntax, but your brain won't be able to parse it. Your eyes will glaze over, and you will close the window. This, my friends, is HTML. But you probably already knew that, because it's 2010, basic web languages are basically in our drinking water. So what's this "5" business?
Somewhere in the central command center basement of the internet, there's a group of guys who maintain the standard, or the rules, of HTML. In the case of HTML5, the buck stops with the Web Hypertext Application Technology Working Group (WHATWG), and to a lesser extent, the World Wide Web Consortium (W3C). It is through these independent standards organizations that new features are codified and presented to the public, and later—in theory—supported by various browsers, no matter what company is behind them.
In the early nineties, the W3C and a few influential torchbearers would collect various new web features thought up by different browser makers, publishing these standards with the hope that we didn't end up with different internets for different browsers. By the mid to late nineties, the standards had grown in both size and stature, then serving as the de facto guide for browser makers and developers alike. (If this sounds a bit rosy, the reality was far grimmer—just ask any seasoned web developer about Internet Explorer, version 6 or earlier.)
Despite an occasionally rocky road, HTML standards went beyond being just a record of changes in web technology; eventually they became the blueprint to push them forward. Still, standards are guides, not laws, and no browser maker has to adopt each and every revision.
The last major revision of the HTML standard, version 4.01, was published in 1999. HTML5 hasn't yet been formally codified, but it was born in 2004 and has been undergoing steady work and maintenance since. In the '90s, HTML discussion centered around topics like font coloration, or tables, or buttons, or something more esoteric. Today, a new HTML version means deep-down support for the modern web, namely web apps and video.
The New Features
The HTML5 spec is more than just new tags and tools, but for users and developers, they're what matter most. Specifically, I'm talking about APIs, or application programming interfaces. It's because of these APIs (usually manifested as tags like or ) that we'll soon be treated to a richer internet. And it's because of these APIs that when work on HTML5 started, it was called "Web Applications 1.0." Today, if you pick apart HTML5, these are the biggest pieces:
• Video. If you watch video on the internet, you're watching it through a plugin—a piece of software that works within your browser, but which isn't technically a part of it. A decade ago, this plugin may have been clunky RealPlayer software, semi-reliable Windows Media Player controls, or a QuickTime plugin that you were better off skipping altogether. Today, it's probably Flash or Microsoft Silverlight, or a newer, subtler Quicktime or Windows Media plugin. Whether you're playing a YouTube movie embedded on a web page, or just viewing a .mov file as you download it, your browser has to use the plugin.
HTML5 includes support for a simple tag that lets developers embed video in a page just like they'd embed a JPEG or other image, with a pointer to a file on a server. Packed along with the ability to read that video tag are a few rendering engines, which would decode the video without any kind of plugin. Embedding a video with HTML5 is as easy as embedding an image, provided the video codec is compatible with the browser's rendering engine. In terms of code, it can be as simple as this:
Boom. Video. Here's what some of the current rudimentary players look like:
-SublimeVideo (Safari 4, Chrome)
-YouTube (Safari 4, Chrome)
-Vimeo (Safari 4, Chrome)
-DailyMotion (Firefox, Safari 4, Chrome, Opera)
In theory, eliminating the video plugins means no extra CPU overhead, fewer crashes, and wider compatibility—if HTML 5 video was standard now, we wouldn't be stuck waiting for Adobe to port their plugin to our mobile phones, and Mac users wouldn't bring their systems to a crawl every time they tried to watch a YouTube video in HD. As a general rule, playing a video file through an extra plugin like Flash is going to be slower, buggier, and more resource-intensive than playing it through a browser's native decoder. That's why people are excited about HTML5 video.
• Offline storage: Remember Google Gears? It was a set of plugins for various browsers that let web apps, like Gmail or Zoho Writer (an online text editor), store content locally on your computer, so they could behave more like native apps. Gmail, for example, could then work without an internet connection. It wouldn't retrieve your new emails while offline, obviously, but it'd at least have a working interface and a database of your old emails, just like Outlook or Mail.app would. Well, Google abandoned Gears, because HTML5 basically supports the same thing, again, without a plugin.
-Here's a basic demo (Firefox 3.6, Safari 4, Chrome, Opera)
-And a more complex one, including lots of other tricks (Firefox 3.6, Safari 4, Chrome, Opera)
-Or, try Gmail on your iPhone or Android phone
• Drag-and-Drop Elements, and Document Editing. You know how you can drag and drop emails in Gmail? And how you type into text boxes, to post or send everything from Tweets to emails to forums posts? As it stands, these systems are built on a delicate, complicated stack of ad-hoc code tricks, which have worked fine up until now, but which could stand to be simplified. Even if you're not a developer, just know that this, in theory, translates to increased stability. And that's exactly what HTML5 proposes: Super-simple implementations of editable documents boxes, drag-and-drop page elements, and drawing surfaces.
-A helpful, ugly demo(Firefox 3.6, Chrome, Safari, Opera)
-And an exceedingly pretty one(Firefox 3.6, Chrome, Safari
• Locations services. Now a web app can tell where you are, if you choose to let it. Here's how that works. (Firefox 3.6, Chrome, Safari 4, Opera, iPhone)
There's a clear trend here. HTML5 is about video, and it's about far more stable yet complex web apps. These are the sources of excitement right now, but they're also the sources of confusion.
Hopes and Dreams
On the desktop, the transition to HTML5 will be largely seamless, though you'll notice an uptick in the quality, speed and richness of some apps you use all the time—think webmail, document editors, and text entry applications for starters. On mobile, the results will definitely be more pronounced. Remember Google's new Voice web app for the iPhone and Pre? Take away the browser controls, and it's almost indistinguishable from a native app.
The hope—and it's a realistic one—is that certain categories of web apps will supplant native apps. The advantages are obvious: If your document editor is online, it'll work consistently whether you're on an iPad or a Windows desktop; if your email client is a website, your messages are always available, and your read/unread status is always in sync. Web apps like Google Documents will get faster, more consistent, and more universally compatible. Still, you're not going to see Photoshop or Final Cut in your browser window anytime soon. If this dream sounds familiar, it's because it's very old, and already realized in many ways: Ancient services like Hotmail mark its genesis, and the app-less Chrome OS is its eventual, if limited, endpoint.
The second dream, and the one you've probably been hearing the most about lately, is that HTML5 video could kill Flash. As in, render Adobe's plugin, which most internet-connect computers already have installed, completely obsolete, simultaneously making Apple's iPad and other mobile devices more capable of getting at all the media the web has to offer.
Vimeo, DailyMotion and YouTube (YouTube!) have all recently launched pilot programs for HTML5 video technology. On the surface this is very exciting. Their players are basic, but they work, and there are some rather spectacular demos of more advanced HTML5 video players doing the rounds right now. The latest builds of the WebKit rendering engine, which comprises the guts of both Mac OS and iPhone/iPad (mobile) Safari, Google's Chrome OS, the Pre's browser and the Android browser, among others, support full-screen HTML5 video. The iPad notoriously won't ship with Flash, but Apple's desktop (Mac OS) Safari is one of the first browsers to fully support the HTML5 video discussed here, the natively rendered video used by YouTube and Vimeo in their tests. So the stars are aligning for an HTML5 video takeover, right? No, they're really not.
Managing Expectations
As I mentioned, the WHATWG and W3C can publish as many standards as they want, but in order for any to actually matter, browsers have to support them—and by browsers, I mean all major browsers, from nimble, rapidly-developed apps like Opera and Chrome to Internet Explorer, which, by the way, is still globally the most popular dashboard to the internet. Take the tag as an example: Safari and Chrome do support it, both the HTML code and the native rendering of a couple of associated video formats. Firefox supports the tag, but doesn't support decoding of the key video format currently used by YouTube and Vimeo. Internet Explorer doesn't support it at all without a plugin, and isn't the whole point of HTML5 to get rid of plugins?
Just as different browsers update their rendering engines at different speeds, users of browsers update their software even less predictably, and some don't update at all. Despite Microsoft's aggressive IE8 evangelism, IE6 was only just bumped from being the Number One browser in the world. It was released in 2001, when HTML 4 was just learning to walk and HTML5 was but a glint in the W3C's eye. IE6 will never work with HTML5 video. But it plays video just fine with Flash.
Even on the cutting edge, there are serious roadblocks to widespread adoption of HTML5 video, the most dangerous being video codecs. Because HTML5 supports video embedding natively, browsers will have to be able to decode embedded video files in lieu of the plugin that use to do it for them. The current working HTML5 standard doesn't explicitly define a video format to be used with the tag—and as luck would have it, there are now two formats vying for the job.
• Ogg Theora is a free codec standard—free as in open source—which most browsers that support HTML5 video support right now. It's an attractive option on paper, because browser companies don't have to pay any licensing fees to include the ability to decode it in their software. The trouble is, it's notoriously inefficient, and, perhaps because of this, it's not too popular. Google's standards guru Chris DiBona infamously said:
The tech press recently transformed HTML5 from a quiet inevitability to an unlikely savior: When YouTube and Vimeo started testing it, it's was invoked as a Flash-killer, and the emancipator of web video. When Google used it to design a new Google Voice web app, among others, it was framed as the murderer the of the OS-specific application. When the iPad was announced with no Flash support, HTML5 was immediately pegged as a salve, not to mention a way to get around the "closed system" of Apple's App Store.
It doesn't take much imagination to draw these stories into an appealing narrative about how the app-less, plugin-free, totally web-based future is just a browser update away. The thinking goes, somewhere in this impenetrable 125,000-word published standard, you'll find the answer to the internet's every ailment: its clunky, proprietary plugins, its stunted web apps, its fundamental shortcomings as a platform for rich media. At the heart of each of these theories lies a grain of truth, but none of them are totally—or even mostly—true.
Here's what's really going on. HTML is already working its way into the underpinnings of web apps you use every day, making them faster and more stable than those relying on Java or other plugins. They're more like real apps. It's helping us inch closer to the dream of having real applications available at all times, on any platform.
HTML is also setting forth a vision of media—specifically video—that doesn't rely on crashy, resource-intensive proprietary plugins. Look in your plugins folder, you will probably see four video plugins at a minimum. HTML is a standard with an optimistic view of the future: You launch your browser, and whatever site you visit, whatever media you choose to play, your browser just magically supports it, without the frustration, confusion and added instability of a plug-in.
But at heart HTML is just a framework, a glimpse, and an ideal: Its real effect on the internet continues to be defined by the companies and web developers who choose to adopt its many pieces—and it is further shaped by those who don't.
The Basics
Before we get into what HTML5 means, we have to talk about what it is, and to talk about what it is, we need to talk about what it's built upon.
Hypertext markup language, or HTML, is the language underneath every web page you've ever been to. The language, along with its various complementary technologies (see: CSS, Javascript), has become immensely complex over the years, but the concept is simple. HTML is what turns this:
Into this:
It's basically a set of instructions that a website hands to a browser, which the browser then reads and converts into a formatted page, full of text, images, links and whatever else.
Somewhere in the central command center basement of the internet, there's a group of guys who maintain the standard, or the rules, of HTML. In the case of HTML5, the buck stops with the Web Hypertext Application Technology Working Group (WHATWG), and to a lesser extent, the World Wide Web Consortium (W3C). It is through these independent standards organizations that new features are codified and presented to the public, and later—in theory—supported by various browsers, no matter what company is behind them.
In the early nineties, the W3C and a few influential torchbearers would collect various new web features thought up by different browser makers, publishing these standards with the hope that we didn't end up with different internets for different browsers. By the mid to late nineties, the standards had grown in both size and stature, then serving as the de facto guide for browser makers and developers alike. (If this sounds a bit rosy, the reality was far grimmer—just ask any seasoned web developer about Internet Explorer, version 6 or earlier.)
Despite an occasionally rocky road, HTML standards went beyond being just a record of changes in web technology; eventually they became the blueprint to push them forward. Still, standards are guides, not laws, and no browser maker has to adopt each and every revision.
The last major revision of the HTML standard, version 4.01, was published in 1999. HTML5 hasn't yet been formally codified, but it was born in 2004 and has been undergoing steady work and maintenance since. In the '90s, HTML discussion centered around topics like font coloration, or tables, or buttons, or something more esoteric. Today, a new HTML version means deep-down support for the modern web, namely web apps and video.
The New Features
The HTML5 spec is more than just new tags and tools, but for users and developers, they're what matter most. Specifically, I'm talking about APIs, or application programming interfaces. It's because of these APIs (usually manifested as tags like or ) that we'll soon be treated to a richer internet. And it's because of these APIs that when work on HTML5 started, it was called "Web Applications 1.0." Today, if you pick apart HTML5, these are the biggest pieces:
• Video. If you watch video on the internet, you're watching it through a plugin—a piece of software that works within your browser, but which isn't technically a part of it. A decade ago, this plugin may have been clunky RealPlayer software, semi-reliable Windows Media Player controls, or a QuickTime plugin that you were better off skipping altogether. Today, it's probably Flash or Microsoft Silverlight, or a newer, subtler Quicktime or Windows Media plugin. Whether you're playing a YouTube movie embedded on a web page, or just viewing a .mov file as you download it, your browser has to use the plugin.
HTML5 includes support for a simple tag that lets developers embed video in a page just like they'd embed a JPEG or other image, with a pointer to a file on a server. Packed along with the ability to read that video tag are a few rendering engines, which would decode the video without any kind of plugin. Embedding a video with HTML5 is as easy as embedding an image, provided the video codec is compatible with the browser's rendering engine. In terms of code, it can be as simple as this:
-SublimeVideo (Safari 4, Chrome)
-YouTube (Safari 4, Chrome)
-Vimeo (Safari 4, Chrome)
-DailyMotion (Firefox, Safari 4, Chrome, Opera)
In theory, eliminating the video plugins means no extra CPU overhead, fewer crashes, and wider compatibility—if HTML 5 video was standard now, we wouldn't be stuck waiting for Adobe to port their plugin to our mobile phones, and Mac users wouldn't bring their systems to a crawl every time they tried to watch a YouTube video in HD. As a general rule, playing a video file through an extra plugin like Flash is going to be slower, buggier, and more resource-intensive than playing it through a browser's native decoder. That's why people are excited about HTML5 video.
• Offline storage: Remember Google Gears? It was a set of plugins for various browsers that let web apps, like Gmail or Zoho Writer (an online text editor), store content locally on your computer, so they could behave more like native apps. Gmail, for example, could then work without an internet connection. It wouldn't retrieve your new emails while offline, obviously, but it'd at least have a working interface and a database of your old emails, just like Outlook or Mail.app would. Well, Google abandoned Gears, because HTML5 basically supports the same thing, again, without a plugin.
-Here's a basic demo (Firefox 3.6, Safari 4, Chrome, Opera)
-And a more complex one, including lots of other tricks (Firefox 3.6, Safari 4, Chrome, Opera)
-Or, try Gmail on your iPhone or Android phone
• Drag-and-Drop Elements, and Document Editing. You know how you can drag and drop emails in Gmail? And how you type into text boxes, to post or send everything from Tweets to emails to forums posts? As it stands, these systems are built on a delicate, complicated stack of ad-hoc code tricks, which have worked fine up until now, but which could stand to be simplified. Even if you're not a developer, just know that this, in theory, translates to increased stability. And that's exactly what HTML5 proposes: Super-simple implementations of editable documents boxes, drag-and-drop page elements, and drawing surfaces.
-A helpful, ugly demo(Firefox 3.6, Chrome, Safari, Opera)
-And an exceedingly pretty one(Firefox 3.6, Chrome, Safari
• Locations services. Now a web app can tell where you are, if you choose to let it. Here's how that works. (Firefox 3.6, Chrome, Safari 4, Opera, iPhone)
There's a clear trend here. HTML5 is about video, and it's about far more stable yet complex web apps. These are the sources of excitement right now, but they're also the sources of confusion.
Hopes and Dreams
On the desktop, the transition to HTML5 will be largely seamless, though you'll notice an uptick in the quality, speed and richness of some apps you use all the time—think webmail, document editors, and text entry applications for starters. On mobile, the results will definitely be more pronounced. Remember Google's new Voice web app for the iPhone and Pre? Take away the browser controls, and it's almost indistinguishable from a native app.
The hope—and it's a realistic one—is that certain categories of web apps will supplant native apps. The advantages are obvious: If your document editor is online, it'll work consistently whether you're on an iPad or a Windows desktop; if your email client is a website, your messages are always available, and your read/unread status is always in sync. Web apps like Google Documents will get faster, more consistent, and more universally compatible. Still, you're not going to see Photoshop or Final Cut in your browser window anytime soon. If this dream sounds familiar, it's because it's very old, and already realized in many ways: Ancient services like Hotmail mark its genesis, and the app-less Chrome OS is its eventual, if limited, endpoint.
The second dream, and the one you've probably been hearing the most about lately, is that HTML5 video could kill Flash. As in, render Adobe's plugin, which most internet-connect computers already have installed, completely obsolete, simultaneously making Apple's iPad and other mobile devices more capable of getting at all the media the web has to offer.
Vimeo, DailyMotion and YouTube (YouTube!) have all recently launched pilot programs for HTML5 video technology. On the surface this is very exciting. Their players are basic, but they work, and there are some rather spectacular demos of more advanced HTML5 video players doing the rounds right now. The latest builds of the WebKit rendering engine, which comprises the guts of both Mac OS and iPhone/iPad (mobile) Safari, Google's Chrome OS, the Pre's browser and the Android browser, among others, support full-screen HTML5 video. The iPad notoriously won't ship with Flash, but Apple's desktop (Mac OS) Safari is one of the first browsers to fully support the HTML5 video discussed here, the natively rendered video used by YouTube and Vimeo in their tests. So the stars are aligning for an HTML5 video takeover, right? No, they're really not.
Managing Expectations
As I mentioned, the WHATWG and W3C can publish as many standards as they want, but in order for any to actually matter, browsers have to support them—and by browsers, I mean all major browsers, from nimble, rapidly-developed apps like Opera and Chrome to Internet Explorer, which, by the way, is still globally the most popular dashboard to the internet. Take the tag as an example: Safari and Chrome do support it, both the HTML code and the native rendering of a couple of associated video formats. Firefox supports the tag, but doesn't support decoding of the key video format currently used by YouTube and Vimeo. Internet Explorer doesn't support it at all without a plugin, and isn't the whole point of HTML5 to get rid of plugins?
Just as different browsers update their rendering engines at different speeds, users of browsers update their software even less predictably, and some don't update at all. Despite Microsoft's aggressive IE8 evangelism, IE6 was only just bumped from being the Number One browser in the world. It was released in 2001, when HTML 4 was just learning to walk and HTML5 was but a glint in the W3C's eye. IE6 will never work with HTML5 video. But it plays video just fine with Flash.
Even on the cutting edge, there are serious roadblocks to widespread adoption of HTML5 video, the most dangerous being video codecs. Because HTML5 supports video embedding natively, browsers will have to be able to decode embedded video files in lieu of the plugin that use to do it for them. The current working HTML5 standard doesn't explicitly define a video format to be used with the tag—and as luck would have it, there are now two formats vying for the job.
• Ogg Theora is a free codec standard—free as in open source—which most browsers that support HTML5 video support right now. It's an attractive option on paper, because browser companies don't have to pay any licensing fees to include the ability to decode it in their software. The trouble is, it's notoriously inefficient, and, perhaps because of this, it's not too popular. Google's standards guru Chris DiBona infamously said:
If