Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Web Development

Windows 8 and Metro: The World Without Browser Plug-ins

Browsers exist primarily to display HTML pages, use the internal JavaScript engine to make displayed pages active, and let the user interact with the back-end server. Browers are limited to HTML/CSS for the user interface and subject to the limitations of HTTP for communication with the server. To offer a better UI and a richer user experience, companies have used plug-ins. A plug-in runs native client-side code and communicates with host browsers using low-level and browser-specific interfaces. Adobe Flash has been the de-facto standard for years, followed by Microsoft Silverlight some three years ago.

The new direction of Microsoft Internet Explorer 10 (IE10) and the Windows 8/Metro platform suggests that external plug-ins will be given less of a role. Doing without plug-ins will be a shock for developers. It's a huge change but, I believe, a good thing.

Metro Rethinks the Browser

In Windows 8, there are two flavors of IE10 — a desktop application and a Metro-style application. The desktop version of IE10 will be as it has always been: It will support plug-ins, tabs, and more. The Metro version, however, will not accept plug-ins. As you may know, the Metro UI in Windows 8 is an optional view of the operating system in which applications run in full-screen mode hiding the classic operating system chrome — just as it runs in mobile operating systems. Metro applications mimic smartphone applications in their being user-centric, mobile-oriented, and endowed with specialized filesystems.

Among other things, doing without plug-ins should improve battery life and reduce security risks to zero.

HTML and HTTP weren't designed for the things they've done during the last 20 years. Web developers create a lot of magic to push HTML/HTTP well beyond their intended capabilities. The magic came from new programmable layers added to the browser. In the end, the modern Web results from the combination of four models: the server-side application serving HTML and/or JSON data, the document object model (DOM), the JavaScript framework (mostly jQuery), and the browser object model (BOM).

The server-side application provides data feeds. The immensely popular jQuery library helps glue together other features that the browser makes available. So what about the BOM? At present, it incorporates Ajax and geolocation capabilities. Starting with HTML5, the BOM will include even more enticing capabilities, such as Web sockets, canvas, and local storage. Any new features the browser has to offer can be used by libraries such as jQuery to offer new programming facilities — thus making developers' lives easier and pushing them to implement new ideas and tools. A richer BOM is much better than a browser with plug-ins.

HTML5 Pushes a Plug-in-free World

I have nothing against plug-ins and I did some Silverlight programming myself over the past few years. My company still keeps deriving business from Flash animations. However, we're looking (well, not just looking…) into Windows 8 and Metro for evolving our mobile front-ends, tools, and frameworks.

For the Web to move forward, developers need simplicity and more power at the same time. This can be achieved by removing add-ons and reinforcing the pillars. I dream of a Web world in which everything you need can be expressed via HTML and driven by JavaScript — animations, rich graphics, communication, storage, location.

HTML5 and its set of companion standards (Web sockets, geolocation, local storage, offline apps) reinforces the browser and with it the pillars of the Web — the HTML language and HTTP protocol. If we can render rich graphics and connect to any endpoint over ports, we don't need plug-ins any more. Such an HTML5-only approach is good for consumers, too, as it makes it simpler for producers to provide a comprehensive and ubiquitous (and why not touch-first?) browsing experience.

And Then, Silverlight…

Since the public announcement of Windows 8 and Metro in September 2011, removing plug-ins from the Metro version of IE10 has generated a lot of comments. In the Microsoft community, fear and uncertainty about the fate of Silverlight 5 reigned for months. "Should I go with HTML5 or stay around Silverlight?" — that's been, and still it is, a hot question.

I don't believe Silverlight and Flash will disappear overnight — they still work and are still useful in many applications and scenarios. As an architect or project lead, though, your primary responsibility is driving your company towards the best technology choices. In this regard, a Web client that is not dependent on plug-ins is preferable and represents an important step forward. The HTML5 solution makes you cross-platform and mobile-ready from day one.

Dino Esposito is a frequent contributor to Dr. Dobb's. His most recent book, Programming Microsoft ASP.NET MVC was published by Microsoft Press.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

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.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.