Legacy.

For centuries Galactic civilization has stagnated and declined, though only a few ever realized that. But now, at last, the Periphery is breaking away and the political unity of the Empire is shattered. Somewhere in the fifty years just past is where the historians of the future will place an arbitrary line and say: “This marks the Fall of the Galactic Empire.”

— Isaac Asimov, Foundation

Amid clamor in the world of finance, the world of Web technology today is experiencing its own crash, of a sort. The unexpected announcement today of a switch, triggered either by a meta element or an HTTP header, which will be added to Internet Explorer to cause it to behave as a specific version, “quirks” and all (and which defaults to emulating existing behavior if left unspecified), is leading quite a few intelligent people to start metaphorically shorting Microsoft.

Many of the responses are well-reasoned, and if you’re reading this you’ve already seen them, so I won’t dwell on what others have said. Instead I’d like to return to an earlier post here, specifically to one section which got a bit of pushback:

But there’s definitely been a sea change in the industry: Microsoft, the unstoppable juggernaut, is vulnerable and is having to play catch-up to maintain its dominance. To borrow a phrase from Lewis Carroll, they’re having to run as fast as they can, just to stay where they are.

And so Microsoft really isn’t relevant to the future of web standards; any compelling new development that comes from the rest of the industry will be just another form of fire and motion, and Microsoft will have no choice but to keep pace, regardless of whether they participated in the process.

Today’s announcement of the IE version-emulating switch — and, more importantly, of its default behavior — is a strong piece of evidence in favor of that argument, so I’d like to focus on that. In order to really see the pickle Microsoft is in, though, it’s important to understand two things: one concerning the state of the Web today, the other concerning the motivation behind the version-emulating switch.

The browser ecosystem reborn

Only a few years ago, there really was no such thing as a competitive market for web browsers; the fact that Microsoft was bundling Internet Explorer for free with every copy of Windows essentially killed the ability of competitors to gain significant market share while remaining profitable (Opera users: note the phrase “significant market share”). This and other instances of “bundling” software into the operating system led to various anti-trust actions against Microsoft in various courts around the world, none of which produced any result likely to break the stranglehold of Windows and its default suite of applications.

But three things, completely separate from the anti-trust cases, have happened since the days when the “browser wars” meant Microsoft versus Netscape, and as a result genuine competition has come back to life.

First of all, Internet Explorer is no longer the default browser on, and in fact is no longer even available for, the Mac OS. If you’ve never really given much thought to the demographics of Web users, this may seem like a strange thing to be highlighting, since — even though Apple is selling more computers than ever, and in fact just posted its best quarterly results ever — the Mac is still a minor platform at best.

But percentage of total market share is and largely always has been the wrong way to consider the Mac user base, at least if you’re the sort of person whose job it is to worry about developing and monetizing a user base. To wit: Mac users (on average) are better educated, have more disposable income and show much stronger brand loyalty than their PC-using brethren. Combine that with the popularity of the Apple brand in key age groups and you get a demographic that leaves the average marketing department in need of a towel and a change of pants.

Now factor in the second change: on the Windows platform the critical well-connected/early-adopting users, whose cluster effects can easily make or break a new online venture, are no longer primarily or even mostly IE users (in fact, a significant number of those people are no longer Windows users). This is one of the areas where Firefox, through a combination of attractive features, better perceived security and word-of-mouth advertising, has won much of its base.

It took me a while to accept this, but when I was home for Christmas a couple years ago I noticed that my sister — my non-technical sister who nonetheless has a large network of online and real-world acquaintances with whom she corresponds constantly, and who has never sought my advice on web browsers — was using Firefox. I couldn’t have been more startled if she’d been running it on Linux.

Taken together, these two items make IE-only web development an increasingly dangerous proposition: if you’re still in doubt about that, ask yourself why Microsoft’s new Silverlight platform is available for both Windows and Mac, as a plugin for any or all of IE, Firefox and Safari. Microsoft is probably in a better position to know which way the browser wind is blowing than just about anyone outside of the Googleplex, and Silverlight’s cross-browser, cross-platform nature smells strongly of a company that’s hedging its bets; five years ago, when IE’s dominance was largely taken for granted (and, ironically, right around the time that the above two events started to happen), Silverlight would have been Windows-only and IE-only.

And finally, take in the third change: the rise of paid placement of search engines in browsers. Charging for the browser isn’t a viable strategy anymore, and hasn’t been for years, but the major search services are viciously competitive and willing to pay good money for any edge they can get. Result: the Mozilla Foundation and Mozilla Corporation, which are the primary players behind Firefox, make over 85% of their revenue — around fifty million dollars in 2006 — from sending users to Google. Meanwhile, John Gruber estimates that Safari brings in around $2 million a month from search referrals, and a similar ongoing deal with Opera seems a likely culprit for that browser finally becoming a zero-cost download.

Combine the first two points — which make alternative browsers into a force site developers must respect — with the third, which gives those browsers a reliable revenue stream, and suddenly the browser market starts looking like a market again. IE is still the biggest player in terms of raw market share, but it is no longer the only successful player and “it works in IE” is no longer a viable strategy for any online venture.

The customers are revolting

The stated reason for the version-emulating switch in future versions of IE is to preserve backwards compatibility for sites which were developed to be compatible with a single specific version of IE:

Chris Wilson, Platform Architect for Internet Explorer, has often said that one of the core tenets of development on IE is that any choices the IE team makes must not “break the web”. Sadly, IE7 did just that for quite a number of people.

While it’s been common knowledge for a while that Microsoft goes to extremes to ensure the backwards compatibility of the Windows APIs, even to the point of patching Windows to work around old applications, that habit hasn’t propagated to the IE team, at least not until now. Quirks mode has, so far, been enough of a backwards-compatibilty system that there hasn’t been a need for the obsessive level of hacking and patching that ends up in Windows itself.

But now the IE team has got the backwards-compatibilty religion, and they’ve got it bad. It’s only natural to ask why, and the answer — I think — isn’t too far off from the official explanation.

There’s only one space left in the market where IE can still claim that bloated 95%+ market share: corporate intranets. But lately the corporate customers have been a bit twitchy; Windows Vista has been such a disaster, with large customers flat-out refusing to upgrade and some even demanding the option to “downgrade” back to Windows XP on new machines, that Microsoft has extended the sales and support periods for XP, which will now be supported all the way out to 2014 — fully thirteen years after initial release.

And it stands to reason, if Microsoft is bending over backwards to keep its bread-and-butter corporate customers happy, that the IE team would suddenly get backwards-compatibility fever. Except they’re in an absolutely awful situation:

  • In order to keep IE relevant in the general Web-browsing niche, they desperately need to clean up and revamp several aspects of the browser engine, but
  • If they do, they’re almost certain to break a bunch of crufty intranet apps and send the corporate customers even further into apoplexy.

There’s an outside chance they could have managed it by taking the rendering system that was IE6’s non-standard rendering modes and simply freezing them for as long as those crufty intranet apps needed them to; standards mode, which has to be explicitly triggered by the DOCTYPE, could move forward with improved standards support for the developers who want and need it, and quirks and “almost standards” modes could just stay as they are for the indefinite future. It’d be a monumental amount of work, but it might just solve the problem.

Except for one thing: HTML is suddenly a moving target again. HTML5 has been drafted, debated and refined to the point of becoming a W3C Working Draft, all without the participation of, and largely in spite of Microsoft. Sooner or later IE is going to have to implement HTML5; they’re not as invincible as they used to be, and any failure to maintain feature parity with competing browsers is going to cost them market share.

But therein lies the rub, because HTML5 does two things which stand a decent chance of landing some members of the IE team in a hospital:

  1. It finally adds clear mandates on how browsers should handle bad HTML, and
  2. It requires a DOCTYPE which does not trigger standards mode in IE. See the update below about the DOCTYPE.

This means that the IE team can’t even use the ugly workaround of requiring progress to take place solely in standards mode: if they do, they’re almost certain to break backwards compatibility for someone, somewhere, who will raise a stink about it. And right now, Microsoft is desperately trying to avoid that situation.

From Microsoft’s point of view, the only solution is something that isn’t a DOCTYPE switch; contrary to what the ALA article claimed, DOCTYPE switching is not broken, it’s just broken for the specific case of Microsoft. X-UA-Compatible is their solution, possibly the only solution that can work for them: nothing less than a new switching mechanism, which defaults to emulating existing rendering, can solve the IE team’s problem.

Update: I see several posts pointing out that IE8 will treat the HTML5 DOCTYPE as a trigger for standards mode. This is arguably a backwards-incompatible change (in IE6 and IE7 it triggers a not-quite-standards-based “standards mode” that’s closer to the “almost standards” mode of other browsers). It also illustrates why Microsoft needs, or thinks it needs, something more than just DOCTYPE switching to trigger rendering modes: even a small change like this is almost certainly going to break some legacy pages which relied, knowingly or unknowingly, on throwing IE into quirks mode.

Fire and motion

Around this time last month, I asserted that Microsoft is currently on the receiving end of the strategy which served it well for many years, a strategy which Joel Spolsky terms “Fire and Motion”. Everybody else is firing and moving, and Microsoft is desperately trying to keep up; what’s worse, they face death from a thousand cuts in the form of corporate customers who are none too happy with them right at the moment.

While I’m not in a position (yet) to express an opinion on the merits of IE’s new version-emulating switch, I think that the above analysis is the only one in which the version-emulating switch makes any sense (from the perspective of Microsoft), and that it incidentally lends quite a bit of support to the argument that Microsoft is no longer relevant to the future of web standards: their only two choices right now are to play a long and expensive game of catch-up while under fire, or consign IE to the dustbin of legacy software.

I don’t envy them one bit.

Comments

Mark Perkins
January 23, 2008
#

Great article.

One of the biggest problems I can see with this is for new developers. Imagine in six years time, every new developer will not only have to learn HTML6 (maybe!) but if they want to work on any legacy sites that have been flagged up with this switch, they may also have to learn what they cannot use for these sites!

This is equivalent for todays web developers having to memorise the HTML2 specs for half the sites they work on. It’s giving me nightmares already.

Justin Lilly
January 23, 2008
#

@Mark: While that is true, current web developers already have to think about what IE renders improperly, find the work around, apply it. I don’t imagine it will be much different for people down the line.

Dave Lowe
January 23, 2008
#

Excellent article, James. This is right along the lines of what I concluded after reading Gustafson’s article yesterday. Microsoft’s behavior doesn’t surprise me. It’s exactly what they’ve been doing with Windows all this time. What worries me greatly is why WaSP is supporting Microsoft on this, and, what’s worse, claiming that this is a user-focused initiative.

Tane Piper
January 23, 2008
#

Good article covering the basics of the issue.

The problem I see is IE8 is slated for release next year, and HTML5 will soon start seeing it’s way into browsers.

At the moment, I still see the occasional IE4(!) and 5.5 user appear in logs, and our company prides itself on supporting 5.5 and above - but with this, I think we’ll start to see a digital divide, as if those users haven’t upgraded by now, who says they will next year? That means we’ll be dealing with 4 generations of a browser than can’t even render links and borders properly at times. I think this is the point we’ll really start to see a backlash, not just from us developers, but users as well.

There is always this option: <!—[if IE]> *, html { display:none } <![endif]—>

kL
January 23, 2008
#

It requires a DOCTYPE which does not trigger standards mode in IE.” Wrong. <!DOCTYPE html> does trigger standards mode in all major browsers, including IE6 and IE7.

James Bennett
January 23, 2008
#

Wrong. <!DOCTYPE html> does trigger standards mode in all major browsers, including IE6 and IE7.

Henri Sivonen’s big table of DOCTYPEs disagrees with you. The HTML5 DOCTYPE triggers “almost standards” mode in IE6 and IE7, which means that having it trigger standards mode in IE8 would be backwards-incompatible.

Aaron
January 23, 2008
#

Excellent analysis.

I’d argue though that the best strategy for the IE team would be to simply provide a path for corporate customers to upgrade to vista without having to also upgrade to IE 7 or IE 8. This would allow the IE team to move forward without worrying about backwards compatibility. I know they’re not going to want to do this, but that seems like a better option.

In any case, the meta-switch only makes sense for IE. There’s no reason the Web Standards folks should endorse it, or other browsers adopt it.

Anne van Kesteren
January 23, 2008
#

Note that IE6 and IE7 do not know “standards mode” per Henri Sivonene’s table. “almost standards” in his table is what “standards mode” is to Internet Explorer. So HTML5 in fact does trigger the best IE has to offer at this point.

James Bennett
January 23, 2008
#

Yeah, I misunderstood Henri’s table at first. I’ve updated the text to reflect that.

devnull
January 23, 2008
#

Cobol applications in the early years broke on revisions. Making it costly to replace or change. Java on each iteration can change or depreciate items on newer versions. HTML can change and depreciate on each version with CSS etc. Normally for Java we just lock the application to a version. This means the person will know you need this version to run it, and any later versions might break it, as well as other versions not having all features. Firefox has versions in extensions so things dont break in new browsers. Things can work if you force it to a new version though. Its untested though. Maybe fallback etc. Frankly it sounds like a reasonably good idea. I’m just not sure if we’ll be still stuck in a IE only site mode(so they should fix some version of IE to render something roughly right before bringing this in for any other version in the meta tag) ;) it seems like a relatively good idea though, just depends on how its done.

Adrian Simmons
January 23, 2008
#

Nice analysis James.

@devnull It does depend how it’s done. But it’s clear most people think the way it’s being done is wrong. Defaulting to IE7 mode, thus forcing every standards loving developer use this meta on sites which work perfectly well is just madness. The default needs to be standards mode - then those sites which break in IE8 can add this fix, used that way it’s a good idea (at least for Microsoft).

@Tane Piper: Hilarious!

Avinash
January 24, 2008
#

Refreshingly fantastic article. Well written, good use of quotes in the right places without letting someone else say what you mean (yes, I’m looking at you Jeff Atwood). That you’re also a Python user is awesome. I’m subscribing.

pauldwaite
January 29, 2008
#

if they want to work on any legacy sites that have been flagged up with this switch, they may also have to learn what they cannot use for these sites!

True, but the earliest legacy mode we’re talking about is IE 7. I think its flaws and their workarounds are already fairly well-documented on the web. Hopefully Microsoft will publish support material themselves.

Gryffin
January 29, 2008
#

Nice insightful article!

However, when scrutinizing Microsoft’s motives, you must always filter their actions through the lens of anticompetitive advantage — “How does this lock-in our users?”

The problem I see with this version switching proposal is that it allows the vast majority of web developers to “fix” their sites by simply adding a META tag, locking them into an IE-only mode of standards compliance, with only the latest version of IE able to properly render the vast majority of sites “correctly” (i.e., with all IE bugs intact), and the other, more standards-compliant browsers either A) rendering them “incorrectly” (from the users viewpoint), or B) having to reverse-engineer the bug of IE 6 and 7 and beyond.

End result for Microsoft: IE remains the only browser that renders the majority of sites “correctly”, and hence, remains the de facto standard. Redmond wins yet again, web standards and alternative browsers lose.

joon
January 29, 2008
#

Chris Wilson, Platform Architect for Internet Explorer, has often said that one of the core tenets of development on IE is that any choices the IE team makes must not “break the web”. Sadly, IE7 did just that for quite a number of people.

The hacks needed in IE6 partially spilled over into IE7 since it still wasn’t quite right. If IE8 is on par with the other browsers can’t they just ignore the IE specific hacks that it depended on previously? No more conditional comments, change the user agent string for naughty browser sniffers, plug the holes in illegal CSS selectors, etc..

Just make a clean break. This may be naive but looking at how much the web has matured despite IE, it seems silly that they need a control mechanism just to be in standards mode. Default to standards mode but don’t behave like <= IE7.

charles
January 29, 2008
#

If all Microsoft needs is provide backward-compatibility for corporate intranet stuck on IE, I don’t see why anybody else, outside IE8 would have to support an extra option. Sites other than intranet will have a strong incentive not to use that fallback or else would fail on other browsers.

In other words, this support only adds work for the IE development team (and the app might use more resources), but not for any other browser, AFAICT. Or is the problem that explicit support in html specs make that fallback support ‘mandatory’ in other browsers??

Mark Whybird
January 29, 2008
#

If corporate intranets are the problem, maybe MS could solve it by switching to backward-compatible mode for any local (i.e. intranet, not internet) domains flagged as needing it.

i.e. switch on quirk mode at the whole domain level, with some special MS IE -specific check of some flag file on the server.

Chris Snyder
January 29, 2008
#

I love this. A handful of MSCEs who don’t want to configure IIS to send an X-UA-Compatible HTTP header, versus the entire web development community.

If IE7 is the default in 2008, IE7 will be the default for the rest of that product’s lifecycle. In fact, they might as well just rename it Intranet Explorer, release a Gecko browser for the web, and let us all get back to work.

Walt French
January 30, 2008
#

Just out of curiosity, how hard is it for a corporation to roll out Firefox to a couple of thousand desktops? Use IE 7/6/5/4 for inhouse sites, and FF for the real world? I’ll wager that any shop that is resistant to rewriting its crufty old crap makes its users put up with far worse than having two browsers.

Damian Cugley
January 30, 2008
#

I am a little annoyed that they did not even bother to read RFC 2616 before designing the header. Multiple items should be separated by commas, not semicolons, and product versions are written MSIE/7 not IE=7. I’d also like to suggest a clearer field name. So the header should look like

X-Tested-In: MSIE/7

Semicolons and equals signs are conventionally used in headers for parameters that modify the initial token. Allowing for parameters means you can encode the Internet Options required to get the layout to work because your designer did not understand font resizing, so:

X-Tested-In: MSIE/7; dpi=96; font-size=16; viewport=1024x768

Browser can react to the hint or its absence however they like, which generally means ignoring it. MSIE can choose to instead assume MSIE/7 behaviour by default, but I think this will cost them in the long run.

Damian Cugley
January 30, 2008
#

I’ll reply to my own comment to say that I’d rather the header did not have to exist at all. I’m just point out that if we must have it, it could be better designed.

Geoff
January 30, 2008
#

great, a modern day equiverlent to the “Best Viewed in Internet Explorer” button

Jim
January 30, 2008
#

There is an even simpler solution. Release a legacy, stand-alone IE that is frozen at IE6 with its crappy engine built into it. It can never use external HMTL DLLs for rendering. IE8+ for the real world, legacy app for old crap. Perhaps the fact that a client has to use two different browsers for their work will lit a fire or two.

Destructo
January 31, 2008
#

I agree with Jim, with this revision: Introduce a new standards-compliant browser under a completely new name that ISN’T IE as well as IE8 as proprietary. IE has way too much baggage. Firefox was fresh and new (and quick), which is why a lot of people adopted it in the first place. Microsoft should do the same thing (while not over-emphasizing that it’s a Microsoft product.)

Then, given a year or two, that should tell Microsoft where they stand and where to develop further.

Add a comment

You may use Markdown syntax in your comment, but raw HTML will be removed. By posting a comment here, you are agreeing to the terms of my comment policy.