The announcement of IE8's new versioning switch is generating heated debate—and nobody could have expected otherwise. Whether you feel this is a great or a terrible idea, it will change the way we web developers work. I encourage everyone to form his or her own opinion on this matter.
However, there's one point that has to be made right away. Eric Meyer already touched on it in his opinion piece, but repeating it won't hurt.
One argument used by detractors of the new switch is that it's nothing more than a browser detect. This comparison is factually false and it shouldn't be allowed to cloud a debate that promises to be complicated enough even without false arguments.
The new versioning switch does something completely different. In IE, it starts up a certain mode, such as Quirks Mode, Strict Mode, or the upcoming IE8 mode. In all other browsers it does nothing, since these browsers are not programmed to recognise the
Therefore, if a non-IE browser encounters the switch, nothing happens. The browser ignores the
In other words, the versioning switch does not have any of the negative effects of a browser detect.
There's a second difference: the versioning switch is a contract. The IE team tells people what will happen if they insert the
<meta> tag in their pages, and it's up to individual web developers to decide whether they want to use this contract or not.
Browser detection has never been based on a contract. Web developers and browser vendors have reacted to the situation they found on the Web, and have muddled the waters by reacting to the other party's reaction.
For instance, back in the nineties the IE team thought it a good idea to insert "MSIE" in their user agent string. Subsequently, lazy or stupid web developers started to refuse any browser that did not have this string in its user agent header. In turn, this caused some browsers (notably Opera) to add the string to their user agent header, too, in order to bypass these detects.
I could go on for hours about the inequities of browser detects (see section 3D of the book for the full story), but action-reaction chains as noted above do not even remotely resemble a contract. Instead, it's a chaos. (And let's not forget that we web developers are the guilty party in this case.)
So we have two totally different systems:
Feel free to disagree sharply with the IE team's decision, but please do not make false comparisons that help nobody and only detract from the core of the debate.
I’m around at the following conferences:
Comments are closed.