Re: Versioning and html[5]

On Thu, 12 Apr 2007, Chris Wilson wrote:
> 
> We can't afford to break what is currently working, so we will have to 
> provide opt-ins for web authors to say "hey, I know what I'm talking 
> about as of now, please give me standards compliant behavior," because 
> we know from experience that all but a very small number of authors 
> expect that in their content.

What you're actually talking about offering isn't "standards compliant 
behavior", but a frozen set of bugs for a particular browser version.

Basically you're saying that at certain release intervals, you want to be 
able to offer a new set of rendering behaviour. You're saying that after a 
certain amount of time, you intend to stop fixing bugs, and simply cut a 
new version. Right?

This mode isn't related to HTML releases, or to CSS releases, or WebAPI 
DOM releases -- it's related to _IE_ releases. If you want a versioning 
flag in your browser, you should provide an IE versioning flag, not an 
HTML one. It's quite possible than in the next 15 years it takes us to 
make HTML5 a REC, you'll have released 10 browser versions with 10 
different rendering engines. The HTML5 DOCTYPE doesn't affect that at all, 
since you'll presumably be wanting to stop breaking the new Web content 
with each release.

If this is indeed the case, then you shouldn't be asking for a change to 
the spec. Just add another IE comment syntax:

   <!--[ie 8]-->

...which makes IE browsers render the page according to the given IE 
version (and if there's no IE version flag, default to IE7).

As is *still happening today* with quirks mode, other browsers will be 
forced to implement the quirks in order to be compatible with the content 
that was intended to IE. Introducing a new version freeze every few years 
will increase the complexity of building a browser by orders of magnitude. 
In a few decades, it will be so prohibitively complex to write a Web 
browser rendering engine, and the browser that introduced each version 
will have such a ridiculously big advantage, that the market will stagnate 
and a single vendor will control its development. This may not be your 
intent today, but it would be the result. Exactly this has already 
happened with Office document formats, it's a repeating pattern.

It will increase the complexity of authoring by an order of magnitude too. 
Authors will become locked in to particular IE version numbers, unable to 
upgrade their content for fear of it breaking. Imagine in 17 years -- only 
twice the current lifetime of the Web! -- content authors will not have to 
learn HTML, they'll have to learn 4, 5, maybe 10 different versions of 
HTML, DOM, CSS, and JS, just to be able to maintain the various different 
pages that people have written.

This is one of the worst possible things Microsoft could do to the Web, 
and will in due course be one of the worst possible things Microsoft could 
do to itself. It is, in my opinion, irresponsible and downright anti- 
competitive.


The alternative is to write the spec in such a way that implementing it 
does not cause significant breakage. Given that I want to write a spec 
that describes how to render the content in _all_ of IE's modes -- quirks, 
today's standards, tomorrow's standards -- such that an implementation of 
this spec can render the Web, I will have to do this regardless of whether 
Microsoft has the motivation to ensure the spec has no breakage or not. It 
would be much easier to do if you guys would simply say when you couldn't 
implement the spec as written.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Thursday, 12 April 2007 20:52:19 UTC