W3C home > Mailing lists > Public > www-tag@w3.org > August 2009

versioning, robustness principle, doctypes etc

From: Larry Masinter <masinter@adobe.com>
Date: Wed, 5 Aug 2009 01:09:24 -0700
To: "www-tag@w3.org WG" <www-tag@w3.org>
Message-ID: <8B62A039C620904E92F1233570534C9B0118D824FE96@nambx04.corp.adobe.com>
I feel like I've been making progress on versioning and some things around HTML as well, but I've had trouble editing the document to reflect it because there's more to include, so I thought I'd at least send a note.

I was working on the definition of "language" and "language specification" to distinguish between "language as used and deployed" and "language as written down and defined in a standards specification".

The difficulty of discussing these I think has led to some of the confusions in HTML discussions, for example.

So the interesting observation was around languages, language versions and the robustness principle: "be liberal in what you accept and conservative in what you send".

A language specification doesn't just define "a language". It gives rules for both the conservative language - what speakers or writers of the language should do to insure maximum comprehensibility - by using correct grammar, spelling, punctuation, and semantics - as well as what liberal listeners/readers should do to be able to understand the language "as spoken" .

Conformance  checkers are liberal -> conservative transducers of a sort receivers - they parse liberally but note where the liberal interpretation doesn't match the conservative guidance. Proxy/translation gateways also need to do liberal interpretation but produce conservative output.

Conformance checks can use a version indicator (doctype for example) to determine which conservative advice should be applied.

Liberal receivers have little use for version indicators - thus the antipathy toward them by the browser makers who so strongly influence HTML5 still.

What constitutes good "conservative" advice is a design choice; certainly compatibility with  a wide range of current receivers is important but also future receivers, and doing a good job of that requires some amount of intelligent prognosticating.

Version indicators are also useful even to liberal receivers if the language-as-spoken changes, perhaps influenced by external events (in the short term) or evolution (in the long term.)  While a liberal receiver will parse and interpret both old and new, in some (admittedly  unusual ones), utterances in the language are ambiguous, and the ability to note version the key to disambiguation.

So I'm coming to believe there's a strong case for version indicators in HTML5, and DOCTYPE in particular. Except that the DOCTYPE should change every time the specification changes, to allow for evolution during the development of the HTML5 spec.

Received on Wednesday, 5 August 2009 08:10:11 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:33:03 UTC