RDN Directions

Pain Before the Gain

Microsoft makes the right call: make each release more compliant than the last and to make standards the default.

No pain, no gain. Do the right thing. There are a million cliches to describe doing something that's difficult or causes problems in the short-term but is right and makes things better in the long-term. With Internet Explorer 8, Microsoft is making one of those decisions: Not only will IE8 do a better job of implementing a variety of important Web standards, including Cascading Style Sheets (CSS) and the Document Object Model (DOM), but by default it will display pages in its most standards-compliant mode -- even if that means that some pages authored for IE7 don't work correctly.

The news reverses a previous decision in late 2007 when Microsoft announced that IE8 would not default to standards compliance. At that time the company said that IE8 would continue to render pages like IE7 and Web developers would have to mark their pages with a special tag to tell the browser to use the more standards-compliant mode.


The Case for Compliance
Anyone who's built a moderately complex Web page with CSS knows first-hand the pain of browser compliance. Unless you restrict yourself to the most plain, vanilla set of features, you face an overwhelming number of browsers, each of which supports a slightly different set of features and carries its own set of bugs (euphemistically referred to as "quirks"). For all developers, a moment comes when, after testing a site in IE6, IE7, Firefox, Safari and who knows what other browsers, they throw their hands up in disgust, crying out, "If only these #%@*# browsers followed the standards!"

A more standards-compliant IE8 means that developers should have an easier time building Web sites that work correctly across browsers. So the decision must have been a no-brainer, right?

I don't think so.

For the major Web sites, this is a non-event. Even if it turns out their sites don't work in the standards mode, it's a simple matter to tell IE to use the older rendering mode. They have sophisticated content-management systems that allow them to add the tag to all of their pages by changing a single template.

But there are many sites on the Web that don't have professional developers behind them, or webmasters maintaining them, but are still frequented by users. I'm sure many of them will just work because they aren't that sophisticated. But the outstanding question is: What's the experience of an end user when he or she visits one of those sites with IE8?

The developer version of IE8 provided by Microsoft has a toolbar button to switch between IE7 and IE8 modes (with a browser restart required). What will be the final experience with IE8 when it ships? When non-technical users use IE8 to go to one of their regular sites and it looks wrong, will they have to click a toolbar button and restart IE to make the site work? Will they have to do that every time they visit the site or will IE8 remember that a certain site requires IE7 mode? If so, what's the granularity for remembering that -- is it per-page, per-domain, or does it use IE zones? In short, there are a lot of questions to be worked out before IE8 ships.

Directions Quote

IE8 isn't the end of the process. Microsoft says it will be "more" compliant, not "fully" compliant. As an aside, I should mention that no one really knows what "fully" compliant means: The W3C specs are very complicated and, in some cases, maddeningly vague. In addition, there's no formal test suite used to measure compliance. Some developers point to the Acid tests created by the Web Standards Project, a grassroots group of developers, but even the Acid tests don't claim to be comprehensive compliance suites.

Principles or Pragmatism?
So why the change of heart? Microsoft attributes the change to a newfound corporate interest in interoperability as articulated by CEO Steve Ballmer and Chief Software Architect Ray Ozzie in a February 2008 announcement. And I'm sure that played a role in the decision.

But the other person on stage with Ballmer and Ozzie was General Counsel Brad Smith, and the company's facing ongoing antitrust problems in the European Union, including a complaint by rival browser vendor Opera that Microsoft deliberately refused to support some Web standards in an attempt to squeeze out other browsers. (The theory being that once Microsoft achieved a dominant market share with IE, site designers were forced to design for IE and couldn't afford to design for other browsers.)

Don't get me wrong-whether driven by principles, pragmatism or some combination of the two, I think Microsoft made the right call. The only way out of the morass of incompatible browsers and incomplete standards support is to make each release more compliant than the last and to make standards the default. But like the old cliche says, there will be pain before the gain.

About the Author

Greg DeMichillie analyzes and writes about Microsoft's development platform and tools for Directions on Microsoft, a research firm dedicated to tracking Microsoft. He was previously the group program manager at Microsoft responsible for the overall design and feature set for Visual C# and C++. A founding member of the C# language team, DeMichillie was a key contributor to the initial design and development of .NET.

Reader Comments:

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above