- From: <noah_mendelsohn@us.ibm.com>
- Date: Mon, 14 Sep 2009 21:52:14 -0400
- To: Henri Sivonen <hsivonen@iki.fi>
- Cc: Larry Masinter <masinter@adobe.com>, "www-tag@w3.org" <www-tag@w3.org>
Henri Sivonen writes: > I'm not assuming that. What I assuming is that if the newer language > makes old language features non-conforming, the old language features > are bad right away. Why is this true in all interesting cases? Example: someone deploys a language for which keyword are treated as case-insensitive, so xxx, Xxx, xXx, and XXX are the same. Over time, for whatever reason, it's decided that this variability is a bad thing. So, users are warned, and eventually a new version of the language is introduced that mandates, say, lowercase only. Per this new version of the language, all except the first of the above identifiers are illegal, or if you prefer, undefined. Let's imagine, though, that in filesystems, databases, and/or web servers around the world there live lots of documents written to the old specification. Why is their use of the old feature (in this example the upperase or mixed case keywords) "bad right away"? Whether or not inband version identifiers are used to help sort things out, I don't think those old documents need immediately be treated as "bad". Software can still process them and indicate: you seem to have used a feature that was discontinued as of version N; I can continue or choke as you prefer. I should say that I am not arguing in favor of Larry's broader point of encouraging in-band identifiers, on which I stand somewhere betwen neutral and against. I'm just curious about the quote above, which seems to rule out lots of changes that people do make from time to time when evolving languages. FWIW, my own thinking on in-band version ids is: if the same content is ever going to mean two incompatible things per different definitions of the language, e.g. if version one says {0=false, 1=true} and version two says {1=false; 0=true}, then some sort of version indicator in the document is useful to disambiguate the intended interpretation. In all other cases version identifiers are redundant, as without them one either properly understands the document, or realizes that features are used that are not understood (we can't tell if they are outright errors, or just features from a different version of which we are unaware). Larry seems to believe that even in some of these cases, the inband ids provide enough value to authoring tools and the like that they are worth the costs (I.e. the cost of specifying the correct use of the ids, providing tooling to insert the ids, perhaps writing validators to check that content in the document is indeed consistent with the ids, teaching users how to use the mechanism, etc.) As I say, I am somewhere between unconvinced and leaning against. Noah -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- Henri Sivonen <hsivonen@iki.fi> Sent by: www-tag-request@w3.org 09/04/2009 10:36 AM To: Larry Masinter <masinter@adobe.com> cc: "www-tag@w3.org" <www-tag@w3.org>, (bcc: Noah Mendelsohn/Cambridge/IBM) Subject: Re: versioning, robustness principle, doctypes etc On Aug 17, 2009, at 04:51, Larry Masinter wrote: > I wrote: >>> Conformance checks can use a version indicator (doctype for example) >>> to determine which conservative advice should be applied. > > And Henri replied: > >> Having an in-band version indicator for conformance checking makes >> the >> following unwritten assumptions: > > No, it makes none of these assumptions. OK. >> * It's appropriate for a person opting to target an older "version" >> not to see more up-to-date advice. (Surely newer advice should be >> assumed to be better informed and, thus, better advice.) > > No, there is no such assumption. Your complaint seems to make > the odd assumption that "newer advice" is uniform, i.e., that > versions of languages are somehow uniformly and instantaneously > deployed. I'm not assuming that. What I assuming is that if the newer language makes old language features non-conforming, the old language features are bad right away. > If a newer specification is less conservative than an older > one then the "newer advice" is not always "better informed" > if the goal is to target older consumers. Good point. However, if the use case is targeting old consumers, the validation target should be determined by the feature set of old consumers--not by the feature set of an old spec. They don't necessarily match. It's mostly fiction that consumer version x implements language version n entirely and x+1 implements n+1 entirely. > I mentioned "conformance checker", but of course, the utility > of version indicators is also good for editors, More on this below. > translation gateways, How? Why wouldn't translation gateways want to be as versionless as browsers? Also, I'd argue that standalone translation gateways as a product category are being obsoleted by Opera Mini on one hand and full browser engines on mobiles (e.g. Fennec and Mobile Safari) on the other. > compatibility filters, What are compatibility filters? >> * The user of an editor that embeds a conformance checker using >> product-specific in-band syntax (consider the Emacs mode line) to >> communicate the validation target, and the target choice may be more >> granular than W3C spec versions (making the in-band indicator non- >> interoperable). > > Almost anything can be left to be "product-specific", including > elements of the language itself. We're engaged in standards making > to try to come to a common way that multiple, independent > implementations > can use a common standard. > > There are probably 100 different HTML editors in common use, > http://en.wikipedia.org/wiki/List_of_HTML_editors > and yes, of course, each could use a product-specific in-band > syntax like the Emacs code line to communicate the validation > target. Standard syntax works only to the extent the validation targets are standard. If you want to validate to a subset of the official language so that the subset fits your CMS, it doesn't matter much if place where you put the identifier is standard if the identifier is not. (Consider <html version="my-cms-subset-of-html5">.) -- Henri Sivonen hsivonen@iki.fi http://hsivonen.iki.fi/
Received on Tuesday, 15 September 2009 01:53:03 UTC