Browser snooping – again

The recent ALA article documenting IE8’s version targeting system has created a storm. And while I’m certain that a lot of the opposition stems from dislike or distrust towards Microsoft there is a lot of validity to the opposition.

Jeffrey Zeldman a supports the IE teams decision on pragmatic grounds, which I can understand. But not accept.

Jeremy Keith has a slightly better view of the whole matter. As a web developer, I’d agree with Jeremy. As such the option isn’t bad, but the default behavior is wrong. Microsoft and the whole web standards movement could benefit immensely if the launch of IE8 would be marketed as an step towards the future with and optional way to stay backwards compatible.

I suspect most clients with mission critical web systems would quickly ask their developers if anything needs to be done to ensure the systems will work fine. With IE7 Microsoft didn’t really market the improvements in its rendering to the general public which meant that clients and developers outside the loop of standards awareness were caught by surprise. I’m quite certain that it wouldn’t be too large of a challenge to the marketers at Microsoft to come up with a campaign to educate the general public on the benefits of either turning on the IE7 rendering mode or developing their sites further to really work.

That is, if I’d support the whole idea of leaving a legacy rendering engine in place.

As a software engineer I shudder with the whole idea that the IE team is presenting. How many times have you heard that the problems with Windows (or any other software product) comes from the necessity of supporting legacy systems? How many times have those issues caused serious bugs, security problems or development headaches and slipping timetables?

By far, my worst fear with this approach is the headaches that will be caused when we’re at IEx (where x > 8) and the OS APIs etc need to change. Is the change possible, or will we face a situation in which Windows development (or IE development) suffers because backwards compatibility must be maintained? The more time passes, the less reliable the basic IE7 codebase will be.

While many may argue that it’s just a browser, not an OS etc. I don’t believe that the relative smallness will save IE from the problems that maintaining exact backwards compatibility will cause. I’ve seen more than a fair share of small, medium, and large projects struggle with backwards compatibility issues. Throwing more resources at a larger and more complex project isn’t a magic bullet.

However, it seems as if this aspect won’t be a consideration. So I’ll join Jeremy in voting that IE=edge rendering be the default. I’m also quite certain, that the PR value of this kind of change would be better for MS. At least better than not advertising the technical advances that the browser has made.

P.S. I wrote this while debugging a heap of J2EE code for an obscure but caused by backwards compatibility, so I may also be biased.

Update: At least Robert O’Callahan also shares my doubts on the maintenance issues.