Tools

Microsoft's New Browser Unlocks HTML5

In mid March, Microsoft released version 9 of its storied browser, Internet Explorer (IE). Previous releases of the browser have not had important implications for software development. In most cases, IE's biggest changes have focused on the addition of new features and baubles of primary interest to the user. But IE 9 has definite programmer implications. They center on the use of HTML5, which is the new specification of the language that defines websites.

HTML5 is widely viewed as a watershed technology. Its primary benefits are that it greatly facilitates the use of multimedia and the construction of applications that run in the browser. These benefits hinge on the widespread expectation that complex applications will increasingly be run inside the browser or the browser will function as the GUI to cloud-hosted apps. If you've used online spreadsheets or word processors, such as those offered by Google Docs or Zoho, then you have some sense of how this scenario works.

Behind the scenes, the browser and the server exchange both data and commands. The commands are generally written in JavaScript and executed in the browser. The problem is that the browser is limited in what it can do. These limitations confront Web applications with essentially two principal alternatives: send over lots of JavaScript to the browser (which produces a sluggish user experience) or force the user to install browser plugins or other downloadable artifacts. A common example of the latter is the Adobe Flash plugin, which I'll return to shortly.

While users might be willing to download a plugin from Adobe or Google or Microsoft, they're unlikely to be happy downloading plugins for every application they want to run in the browser. Consequently, many Web apps are forced to send lots of JavaScript over the connection so that the browser will respond appropriately to various actions and commands.

HTML5 changes this by specifying a wide range of behaviors that the browser must support. These new capabilities include video, drawing, text manipulation, as well as offline storage. Once browsers support these aspects, the applications can simply invoke them via commands, rather than sending bits of the implementation over the network to run on the client or relying on plugins. (For a more detailed introduction to HTML5, see "HTML5 Up and Running."

While interest in HTML5 has been growing steadily, one undeniable barrier to jumping in fully was Microsoft's slow adoption of the specification. Because IE is the dominant browser in the market, any HTML5 development would result in an indeterminate result if it could not be tested in the Microsoft browser. Before this release, the rendering engine in IE — known as Trident — did not fully support several standards that are essential to HTML5, including several HTML5 syntactical advances. The new release of Trident, version 5.0, can now render much of HTML5, as well as Cascading Stylesheets (CSS) 3.0, and Scalar Vector Graphics (SVG).

SVG is a means of specifying a drawing or text using XML. It relies entirely on the browser to take the data elements and render them as lines, curves, colors, and shapes. For years, IE has been the only browser without native support for SVG. This situation accounts for the long delay in adoption of SVG as a common format for specifying 2D graphics and illustrations. The possibility that Microsoft might similarly fail to adopt core elements of HTML5 was a concern that could not be entirely banned until the Redmond giant released an official browser version with these capabilities.

HTML5 and SVG should both receive a shot in the arm due to IE9. Microsoft, perhaps sensing the importance of the release to developers, added other tools that expand previous capabilities to go behind the scenes and explore the execution of a web page: both by viewing and stepping through the code and even profiling its activity.

As Web applications becomes a larger part of workers' daily lives, it appears that Microsoft's browser will be a top-tier participant — no longer only on the basis of market share, but in its standards support and the technology with which it supports developers.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!