Re: [hybi] Protocol simplicity and the "amateur programmer" standard
James Graham <jgraham@opera.com> Mon, 26 July 2010 11:48 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 C89563A699E for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 04:48:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.484
X-Spam-Level:
X-Spam-Status: No, score=-5.484 tagged_above=-999 required=5 tests=[AWL=1.115, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 w2R-AB5TV9Ms for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 04:48:12 -0700 (PDT)
Received: from smtp.opera.com (smtp.opera.com [213.236.208.81]) by core3.amsl.com (Postfix) with ESMTP id 2BD033A680A for <hybi@ietf.org>; Mon, 26 Jul 2010 04:48:11 -0700 (PDT)
Received: from [10.30.0.35] (046-tdc.opera.com [213.236.208.46] (may be forged)) (authenticated bits=0) by smtp.opera.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id o6QBmRRe020522 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 26 Jul 2010 11:48:28 GMT
Message-ID: <4C4D760A.9060906@opera.com>
Date: Mon, 26 Jul 2010 13:48:26 +0200
From: James Graham <jgraham@opera.com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9pre) Gecko/20100217 Shredder/3.0.3pre
MIME-Version: 1.0
To: Maciej Stachowiak <mjs@apple.com>
References: <ECF0E97F-1DA2-4662-BA48-F68B65AA8179@apple.com> <4C4D66AF.9030905@opera.com> <DAA95AEE-300E-4C2D-BBCA-02D0385EE482@apple.com>
In-Reply-To: <DAA95AEE-300E-4C2D-BBCA-02D0385EE482@apple.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
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 11:48:13 -0000
On 07/26/2010 01:07 PM, Maciej Stachowiak wrote: > > On Jul 26, 2010, at 3:42 AM, James Graham wrote: >> "it must be possible to efficiently implement WebSockets using only >> the stdlib of today's popular scripting languages without dropping >> down to lower level (C, Java, whatever) code" > > Out of the existing requirements, the one that this statement is most > likely to conflict with is security, since many proposals for making > the handshake secure against cross-protocol attacks involve crypto. I > would not consider efficient implementability in scripting languages > to be a higher priority than security. I think other proposed > features that conflict with the simplicity argument are not > especially inefficient to implement. To be clear here, I mean "efficient in terms of programmer time". That is, I don't think it is acceptable to make would-be implementers write substantial amounts of code that are not directly related to websockets just to write a simple websockets server. > Others may hold different requirements as important, and I don't > think appealing to some standard of simplicity will make anyone > conclude that their particular requirement is less important. That could be true, but it is sad if so; I would hope people are capable of assessing the relative importance, and relative complexity, of features that they would like in the protocol. >> Having said all of that, I think the current discussion on this >> list belies a false belief that we are still at a stage where the >> protocol can be trivially changed. Instead we are in a situation >> where there are three known implementations in major browser >> engines (presto, gecko, webkit) and some of those are close to >> shipping. There are also numerous server implementation. At this >> stage, the cost of substantial changes is already looking >> prohibitive and if Opera/Firefox/Chrome/Safari all ship with >> interoperable support, we can assume that substantial changes to >> the design will become all but impossible since browsers rarely >> rescind functionality that is needed to keep sites working. >> >> Given the current implementation status, I suggest people adopt the >> attitude that changes are difficult and expensive and only the most >> necessary changes should be advocated. If there are people who >> believe that WebSockets has the wrong requirements, or occupies the >> wrong part of design space, it seems more prudent to work on a >> seperate, parallel, proposal. > > The last version of Safari shipped with a version of WebSocket that > is incompatible with the current protocol. I think one browser shipping doesn't create an ecosystem that depends on WebSockets not undergoing incompatible changes (although I note that I have seen multiple people ask how to make their servers compatible with both -75 and -76 handshakes in order to work with both Safari 5 and Chrome). I think that many browsers shipping compatible implementations is highly likely to create such an ecosystem. Therefore I would say that the timescale for substantial changes to websockets is soemthing like the release timescale of the next generation of browsers minus the stabilization time and the time needed to implement changes. It seems to me that that timescale could be rather short.
- Re: [hybi] Protocol simplicity and the "amateur p… Mike Belshe
- [hybi] Protocol simplicity and the "amateur progr… Maciej Stachowiak
- Re: [hybi] Protocol simplicity and the "amateur p… Greg Wilkins
- Re: [hybi] Protocol simplicity and the "amateur p… Willy Tarreau
- Re: [hybi] Proposed way forward for WebSockets Willy Tarreau
- Re: [hybi] Protocol simplicity and the "amateur p… James Graham
- Re: [hybi] Protocol simplicity and the "amateur p… Maciej Stachowiak
- Re: [hybi] Protocol simplicity and the "amateur p… Julian Reschke
- Re: [hybi] Protocol simplicity and the "amateur p… Ian Fette (イアンフェッティ)
- Re: [hybi] Protocol simplicity and the "amateur p… James Graham
- Re: [hybi] Protocol simplicity and the "amateur p… Micheil Smith
- Re: [hybi] Protocol simplicity and the "amateur p… Greg Wilkins
- Re: [hybi] Protocol simplicity and the "amateur p… Dave Cridland
- Re: [hybi] Protocol simplicity and the "amateur p… James Graham
- Re: [hybi] Protocol simplicity and the "amateur p… Adam Barth
- Re: [hybi] Protocol simplicity and the "amateur p… James Graham
- Re: [hybi] Protocol simplicity and the "amateur p… John Tamplin
- Re: [hybi] Adding clarification regarding future … Joe Hildebrand
- Re: [hybi] Protocol simplicity and the "amateur p… Greg Wilkins
- Re: [hybi] Protocol simplicity and the "amateur p… James Graham
- [hybi] Proposed way forward for WebSockets Ian Hickson
- Re: [hybi] Proposed way forward for WebSockets Maciej Stachowiak
- Re: [hybi] Proposed way forward for WebSockets Rob Sayre
- Re: [hybi] Proposed way forward for WebSockets Greg Wilkins
- Re: [hybi] Proposed way forward for WebSockets Michael Carter
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren
- Re: [hybi] Proposed way forward for WebSockets John Tamplin
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren
- [hybi] Adding clarification regarding future revi… Ian Hickson
- Re: [hybi] Proposed way forward for WebSockets Maciej Stachowiak
- Re: [hybi] Adding clarification regarding future … Simone Bordet
- Re: [hybi] Proposed way forward for WebSockets Dave Cridland
- Re: [hybi] Adding clarification regarding future … Thomson, Martin
- Re: [hybi] Proposed way forward for WebSockets gabriel montenegro
- Re: [hybi] Proposed way forward for WebSockets Thomson, Martin
- Re: [hybi] Adding clarification regarding future … Willy Tarreau
- Re: [hybi] Proposed way forward for WebSockets gabriel montenegro
- Re: [hybi] Proposed way forward for WebSockets Willy Tarreau
- Re: [hybi] Proposed way forward for WebSockets Adam Barth
- Re: [hybi] Proposed way forward for WebSockets Willy Tarreau
- Re: [hybi] Proposed way forward for WebSockets Dave Cridland
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren
- Re: [hybi] Proposed way forward for WebSockets Lars Eggert
- Re: [hybi] Adding clarification regarding future … Pieter Hintjens
- Re: [hybi] Proposed way forward for WebSockets Greg Wilkins
- Re: [hybi] Adding clarification regarding future … Dave Cridland
- Re: [hybi] Adding clarification regarding future … Jamie Lokier
- Re: [hybi] Proposed way forward for WebSockets Jamie Lokier
- Re: [hybi] Adding clarification regarding future … Jamie Lokier
- Re: [hybi] Proposed way forward for WebSockets Jamie Lokier
- Re: [hybi] Proposed way forward for WebSockets Ian Fette (イアンフェッティ)
- Re: [hybi] Proposed way forward for WebSockets John Tamplin
- Re: [hybi] Proposed way forward for WebSockets Dave Cridland
- Re: [hybi] Proposed way forward for WebSockets Martin J. Dürst
- Re: [hybi] Proposed way forward for WebSockets Alexey Melnikov
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren
- Re: [hybi] Proposed way forward for WebSockets Martin J. Dürst
- Re: [hybi] Proposed way forward for WebSockets Greg Wilkins
- Re: [hybi] Proposed way forward for WebSockets Anne van Kesteren