Microsoft has announced that IE8 will include yet another non-standard hack in order to get their browsers to be backwards compatible. While their intentions are good, they've still got the wrong idea.
Microsoft's approach to browser creation is a good one, considering their dominant position in the browser market. "Don't break the web". Make sure new versions of IE don't cause terrible breakages in existing content, since each breaking change they introduce can cost the industry millions, if not billions of dollars. Their difficulty lies in improving the browser without introducing such breakages. Their solution has always been to add some kind of version-identification functionality that developers can use to customize their sites for each iteration of IE. For example:
IE8 will continue this trend, adding a new meta tag that will act as a browser render mode identifier.
The issue is that Microsoft wants to prevent companies with IE6/7 specific pages from having to redesign for IE8. However, even though "Don't break the web" is their credo, they've never been able to follow through on it completely. IE6 broke IE 5.5 sites, IE7 broke IE6 sites, and no matter what they do, IE8 will break IE7 sites. People are going to expect this to occur and will be testing and tweaking their sites despite Microsoft's best intentions.
With that in mind, why not make their tweaks be opt-ins to the IE6/7 model as opposed to opt-outs? Again, people are going to have to fix their sites. If history is any indicator, some changes will be needed regardless of Microsoft's compatibility intentions. If adding the
For for both Microsoft and the web in general this would be a big win, as it would minimize the need for the hack-per-version development model IE currently follows. If they're not screwing around this time and IE8's new super compatibility mode really does make it work like other browsers, then they'll be able to focus on making IE9 an even better browser and not just a standards-fixing exercise.