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

James Graham <jgraham@opera.com> Mon, 26 July 2010 18:34 UTC

Return-Path: <jgraham@opera.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 563C93A68A9 for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 11:34:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.043
X-Spam-Level:
X-Spam-Status: No, score=-3.043 tagged_above=-999 required=5 tests=[BAYES_05=-1.11, RCVD_IN_DNSWL_MED=-4, RCVD_NUMERIC_HELO=2.067]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d4ARDX3azMuX for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 11:33:59 -0700 (PDT)
Received: from smtp.opera.com (smtp.opera.com [213.236.208.81]) by core3.amsl.com (Postfix) with ESMTP id 77E9B3A67FE for <hybi@ietf.org>; Mon, 26 Jul 2010 11:33:59 -0700 (PDT)
Received: from staff.opera.com (www-data@179-tdc.opera.com [213.236.208.179] (may be forged)) by smtp.opera.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id o6QIYI9p015794; Mon, 26 Jul 2010 18:34:18 GMT
Received: from 95.209.10.230.bredband.tre.se (95.209.10.230.bredband.tre.se [95.209.10.230]) by staff.opera.com (Horde MIME library) with HTTP; Mon, 26 Jul 2010 18:34:18 +0000
Message-ID: <20100726183418.o8063h7yss88ocgg@staff.opera.com>
Date: Mon, 26 Jul 2010 18:34:18 +0000
From: James Graham <jgraham@opera.com>
To: Greg Wilkins <gregw@webtide.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"; DelSp="Yes"; format="flowed"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
User-Agent: Internet Messaging Program (IMP) H3 (4.1.4)
Cc: hybi@ietf.org
Subject: Re: [hybi] Protocol simplicity and the "amateur programmer" standard
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 26 Jul 2010 18:34:01 -0000

On 07/26/2010 06:53 PM, Greg Wilkins wrote:
> On 27 July 2010 01:42, James Graham <jgraham@opera.com
> <mailto:jgraham@opera.com>> 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