HTML5, the next version of the markup language used to build Web pages, has attracted attention for its ability to show video inside a Web browser without using plug-ins, such as Adobe’s Flash. But lesser-known features could ultimately have a much bigger impact on how users experience the Web.
Experts say that what HTML5 does behind the scenes–such as its network communications and browser storage features–could make pages load faster (particularly on sluggish mobile devices), make Web applications work more smoothly, and even enable browsers to read older Web pages more easily.
Bruce Lawson, who evangelizes about open Web standards at Opera Software, says that to make websites perform functions the Web wasn’t originally designed for, developers must perform complex coding tasks that can easily introduce errors and make applications fail.
The group working on HTML5, Lawson says, was given the tall order of making the specification more forgiving than its predecessors so that older or improperly coded websites will work better in HTML5-enabled browsers. They also wanted to extend the specification forward to support modern trends such as rich Internet applications. “The basis of HTML5 is relentlessly pragmatic,” he says. “It’s designed to reflect what people are actually doing.”
Experts point to a feature called Web Sockets as an example of the improvements that HTML5 can offer. Web Sockets provide a website with an application programming interface (API) that opens an ongoing connection between a page and a server, so that information can pass between them in real-time. Normally, the browser has to make a request every time it wants an update.
The effect of Web Sockets is something like moving from having a conversation via e-mail to having it via instant message, says Ben Galbraith, who cofounded the Web development site Ajaxian.com, and is director of developer relations at Palm. With e-mail, each message is sent as a single event, while instant messages allow for a smooth, ongoing conversation.
Web developers have previously devised ways to keep browsers and servers in constant communication, but Galbraith describes the techniques as “ingenious hacks” that are complicated to execute and don’t scale well. Web Sockets, he says, promises an easy way for developers to create Web pages that change in real time–increasingly important with the proliferation of more sources of real-time data, such as instant status updates from social networking users. Users can expect to see Web applications with real-time feeds running more smoothly and with fewer errors.
HTML5 could also help Web applications work better when devices are disconnected from the Internet or intermittently connected, as is common with smart phones, says Alon Salant, who owns Carbon Five, a San Francisco-based company that specializes in building Web applications. A feature called Web Storage lets Web applications store more data inside the browser, retrieve it more intelligently, and control how browsers save parts of pages for faster reloading.
Galbraith is also excited about several features of the newest version of CSS that are designed to work with HTML5. These features will make Web pages more responsive to user input and allow for higher-quality graphics– things that Web pages aren’t normally good at. HTML5 allows developers to embed windows of animation onto a page, but Galbraith says new CSS functionality would perform better.
Chris Blizzard, Mozilla’s director of evangelism, points to the significance of the HTML5 parser. A browser’s parser reads the markup used to build a page and figures out how to display it. Blizzard says this is one of the most significant parts of the specification. It’s meant to make browsers more interoperable, particularly in the way they handle badly written code. Instead of letting each browser maker decide how to handle imperfect code, the parser specifies what responses to errors should be. This should give users a more consistent experience, regardless of the browser they’re using, he says.
While HTML5 seems to present a long list of big changes, Lawson says, the main purpose is to provide simpler ways to do what developers were already doing, making it less likely that they will make errors. Lawson says, “The greater the simplicity, the greater the robustness and therefore the greater the experience for the end user–that’s the take I’ve got.”