Some interesting news this week was the surprise that Google would be “sunsetting” Google Gears. For most consumers, this is not a big deal as they might not even know what Gears is. For many techies and developers this is part surprise, but also partly expected. It is somewhat expected because of the massive changes in HTML5, partially stewarded by Google themselves. In the LA Times article above, Google admits that HTML5 gives them much of what they needed Gears for:
“We are excited that much of the technology in Gears, including offline support and geolocation APIs, are being incorporated into the HTML5 spec as an open standard supported across browsers, and see that as the logical next step for developers looking to include these features in their websites,” wrote a Google spokesman in an e-mail.
This is great news in general, as it means that some of Gears concepts will just be a standard and will work on any browser supporting the standard. Disappointingly, solid support for HTML5 is still not here, but that has not stopped people from talking about it. Regardless of the browser support timelines, what makes HTML5 so damned special?
First, what is the difference between HTML4 and HTML5? Conveniently, W3.org has a thorough and boring article about that. If you read that and made it back here, I am assuming that you write HTML for a living. There are a large number of changes, but what are the important ones?
Native SVG support is a very interesting prospect as it allows developers and designers to include graphics directly in the HTML without providing a jpg or png. It is just markup like:
<svg> <circle r="50" cx="50" cy="50" fill="green"/> </svg>
Including a green circle on your page does not sound like much, but the flexibility of this combined with designers’ imaginations will mean some really cool page designs.
There are a bunch of new structural elements that will provide a better standard structure for pages. Things like
nav will make creating interesting page layouts much simpler and more cross-browser friendly.
One major addition that everyone is raving about is
canvas. The boring description from W3.org states canvas “is used for rendering dynamic bitmap graphics on the fly, such as graphs or games.” W3.org really needs some marketing help if they want a small bullet like that to get people excited. They also introduced a 2D drawing API to help with drawing on the new canvas element.
For making web applications simpler, there are several new input types like
time. There are some other additions that include much of the coolness of prototype and jquery. There will be a getElementsByClassName method, a new classList attribute with has(), add(), remove() and toggle() methods, and some other additions for active and selected elements.
Some of my personal favorite additions will help with collaboration and content management. The
contenteditable attribute indicates that the element is editable. This means that the user can actually change the HTML within that element. This will be a big change for collaborative editing and CMS systems as this used to be an IE-only feature. Other nice little attributes are
subject which can annotate content with specific labels. This is called Microdata in the HTML 5 draft.
So, if you have been paying attention, you will notice that I have not mentioned anything related to Google Gears. What was included in HTML5 to make Gears no longer necessary? Two APIs help eliminate the need for Gears. First, there is an API for enabling offline Web applications. It looks like this was originally planned more as a key-value store, but has become a more generic requirement. The second is an API for Web applications registering for certain protocols or media types. This allows an application to have much more control over how it reacts to and includes content. Unsuprisingly, these are also listed as simple bullets at the bottom of the page.
The canvas element and the new APIs are fairly large and important additions to HTML, and that is why HTML5 has received so much hype. There are a lot of smaller additions like the new input types that make HTML5 a great evolution of HTML. Now, we just need to wait for the browsers to support it.