- From: Ian Hickson <ian@hixie.ch>
- Date: Thu, 21 Jun 2007 22:22:45 +0000 (UTC)
- To: Philip & Le Khanh <Philip-and-LeKhanh@Royal-Tunbridge-Wells.Org>
- Cc: Stephen Stewart <beowulf@carisenda.com>, "Philip Taylor (Webmaster)" <P.Taylor@Rhul.Ac.Uk>, HTML Working Group <public-html@w3.org>
On Thu, 21 Jun 2007, Philip & Le Khanh wrote: > > If we have the humility to accept that, no matter what we agree, > hindsight will allow those who come after us to make improvements, then > it is vital that documents created based on /our/ work identify > themselves as such. If they do not, and simply claim to be "HTML", then > at some point in the future a document that is today "Valid HTML" will > cease to be valid and/or its semantics will change because the > specification has changed (something added, something removed, something > altered). [...] > > [...] documents starting > > <!DOCTYPE HTML> > > will be easily identifiable as HTML 5 and treated as such. The above, I believe, highlights the key misunderstanding here which is probably the source of our disagreement. Assume that we have two versions of HTML, let's say "HTML 8" and "HTML 9". Assume that in HTML 8, we introduce an element, say <credit>, which has a particular meaning, let's say it means "amount of money". So for example, an HTML8 document could say: <credit>4.5</credit> ...and it would represent 4.5 credits. Now assume that in HTML 9, we change the meaning of <credit> such that it actually means "ID of author who wrote this part of the document". So an HTML9 document could say: <credit>4.5</credit> ...and it would mean that the user with ID "4.5" was the author of the document in question. Now, you posit that if the HTML8 document contains version information labelling it as an HTML8 document, and the HTML9 document contains version information labelling it as an HTML9 document, that user agents that are aware of both would correctly treat both documents. Right? If so, then you are in fact proposing versioned *implementations*, as well as versioning in the spec. Versioned implementations have never existed up to this point in HTML -- all HTML user agents today handle all existing HTML content (regardless of version) using the same rules. Versioned implementations would mean that you could not just take a random document and add a feature from a new HTML version, because it might not work -- in fact, they make it impossible to use a feature from HTML8 and a feature from HTML9 at the same time if the two features are both defined differently in the two language versions. Versioned implementations also increases the implementationa and testing cost of writing a Web browser, which reduces the likelihood that a browser will be fully compliant. Given how hard it is to get browsers to be compliant in the first place, we want to reduce any barrier to that goal. A significantly simpler and more scalable approach to language design is to never break earlier assumptions, or to only break them in ways that only improve the handling of existing documents. This is, in fact, one of the most basic design principles that has been used to design HTML5 so far. With such a design methodology, you don't need version information. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Thursday, 21 June 2007 22:24:58 UTC