Subject: Re: [hybi] Protocol simplicity and the "amateur programmer" standard

From: James Graham <[email-masked]>
Date: Mon, 26 Jul 2010 18:34:18 +0000

On 07/26/2010 06:53 PM, Greg Wilkins wrote:
> On 27 July 2010 01:42, James Graham <[email-masked]
> <mailto:[email-masked]>> wrote:
>
>
>     Will people still be willing to make breaking changes in, say, a
>     year, if it has come to pass that Mozilla, Google, Apple and Opera
>     are all shipping something like the current protocol and a
>     non-trivial amount of content is using it?
>
>
> Code running in the browsers should be dependent only on the API and the
> behavioural contract that it makes.  I think that there is a large
> amount of freedom to change the protocol beneath the websocket API and
> the application code will hardly notice (except maybe it will work more
> reliably).

Javascript code running in the browser is indeed not a problem.

> The servers will have to change, but they should also be protecting
> their applications with APIs.  Yet another reason that it would be crazy
> for applications to develop their own protocol implementations.

"The servers will have to change" is another way of saying "browser
makers will have to be prepared to break existing content". Historically
they have been very reluctant to do this* ? the only common exception is
for security holes. I think it would be foolish to operate under the
premise that WebSockets is special in this regard.

Instead, I believe that the group should make the prudent assumption  
that there is a window of opportunity measured in months to make  
breaking changes to the protocol.

* See for example the <plaintext> element which is widely supported  
despite being described as "a fudge" in 1991 [1] and "obsolete" by  
1993 [2], or the localStorage mechanism which was introduced recently  
but found to have a concurrency issue that had to be fixed in an  
inelegant, but backwards compatible, way.

[1] http://lists.w3.org/Archives/Public/www-talk/1991SepOct/0003.html
[2] http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt