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

RE: Versioning and HTML

From: Ian Hickson <ian@hixie.ch>
Date: Mon, 27 Apr 2009 07:06:13 +0000 (UTC)
To: Larry Masinter <masinter@adobe.com>
Cc: "www-tag@w3.org WG" <www-tag@w3.org>
Message-ID: <Pine.LNX.4.62.0904270653370.12381@hixie.dreamhostps.com>
On Sat, 25 Apr 2009, Larry Masinter wrote:
>
> I'm trying to lay out some of the general reasons for "why languages 
> evolve and why we need versions" with the specifics for HTML.

There's no doubt that language do and often should evolve.

It's also demonstrably the case that languages can and have been evolved 
without changes that require implementations to implement forks to consume 
content from different versions of the language in different ways. On the 
Web, for example, URIs have evolved that way, and with some unnecessary 
exceptions, so have CSS, HTML, and the DOM APIs.

In fact, in the case of CSS and HTML, the only versionning has been quirks 
vs standards mode, a versioning that wasn't sanctioned by the 
specifications contemporary to its introduction, and which would have been 
unnecessary had the deviations from the original design required by 
deployed content been codified as standard, as we have been doing for the 
past few years with CSS 2.1 and HTML5.

Forking the language makes implementations orders of magnitude more 
complex. Watching the Internet Explorer engineers' pained expressions when 
one discusses the implications of their decision to ship multiple versions 
of their rendering engine makes this abundantly clear. It also makes the 
language less suitable for constrained devices (instead of one language to 
support, one effectively ends up with multiple languages to support), 
harder to test (instead of testing one language implementation, one 
effectively ends up testing multiple implementations, as well as their 
interactions in edge cases), and harder to document (instead of just 
specifying the weird behaviours that end up de-facto part of the language 
due to wide deployment of implementation bugs, one has to also specify the 
other behaviours expected in each version).

Thus my belief that in general, language designers should strive to make 
their languages versionless at the syntax level.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Monday, 27 April 2009 07:06:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:48:13 GMT