Re: [hybi] Extensibility mechanisms?

Ian Hickson <ian@hixie.ch> Tue, 20 July 2010 22:13 UTC

Return-Path: <ian@hixie.ch>
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 0A88C3A6892 for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 15:13:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.82
X-Spam-Level:
X-Spam-Status: No, score=-1.82 tagged_above=-999 required=5 tests=[AWL=0.780, BAYES_00=-2.599]
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 XoqQ4RLVgy3S for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 15:13:48 -0700 (PDT)
Received: from looneymail-a1.g.dreamhost.com (caibbdcaaaaf.dreamhost.com [208.113.200.5]) by core3.amsl.com (Postfix) with ESMTP id 8F0B73A67E7 for <hybi@ietf.org>; Tue, 20 Jul 2010 15:13:48 -0700 (PDT)
Received: from ps20323.dreamhostps.com (ps20323.dreamhost.com [69.163.222.251]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by looneymail-a1.g.dreamhost.com (Postfix) with ESMTP id 6434B2BA84; Tue, 20 Jul 2010 15:14:04 -0700 (PDT)
Date: Tue, 20 Jul 2010 22:14:04 +0000
From: Ian Hickson <ian@hixie.ch>
To: Roberto Peon <fenix@google.com>
In-Reply-To: <z2gad99d8ce1004190822ne4dd36b6v54d63efcc448e840@mail.gmail.com>
Message-ID: <Pine.LNX.4.64.1007202204270.7242@ps20323.dreamhostps.com>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <4BCB7829.9010204@caucho.com> <Pine.LNX.4.64.1004182349240.751@ps20323.dreamhostps.com> <4BCC0A07.9030003@gmx.de> <Pine.LNX.4.64.1004190753510.23507@ps20323.dreamhostps.com> <4BCC111C.90707@gmx.de> <Pine.LNX.4.64.1004190837570.23507@ps20323.dreamhostps.com> <4BCC204D.30004@gmx.de> <z2gad99d8ce1004190822ne4dd36b6v54d63efcc448e840@mail.gmail.com>
Content-Language: en-GB-hixie
Content-Style-Type: text/css
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Extensibility mechanisms?
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: Tue, 20 Jul 2010 22:13:50 -0000

(By the way, I spoke to Joe and he suggested that I post an e-mail to each 
thread to which I was replying, rather than replying to all threads in one 
bulk e-mail or replying to all the e-mails I'm replying to individually. I 
hope this compromise works for everyone; I know there was some controversy 
when I replied in bulk a few months ago. I apologise in advance if this 
causes a spike in traffic to the list.)

On Mon, 19 Apr 2010, Roberto Peon wrote:
> On Mon, Apr 19, 2010 at 2:20 AM, Julian Reschke wrote:
> > > On 19.04.2010 10:48, Ian Hickson wrote:
> > > >
> > > > There are many many implementations of HTTP. Some fast, some not 
> > > > so.  Some complete, some not so.
> > >
> > > I think we can get orders of magnitude more complete implementations 
> > > of Web Sockets than of HTTP if we keep the protocol trivial.
> >
> > Yes. That's a given. Make it less complex, and it will be easier to 
> > completely implement.
> 
> This isn't true! Make it (the protocol) less complex and it will be easy 
> to implement something which *conforms to the spec*, but not necessarily 
> something which scales and is robust, reliable, and scalable in the face 
> of all the stuff that happens out there.

Not all implementations have to scale to a million QPS or withstand DDOS 
attacks for weeks at a time. Most implementations of Web Sockets will 
likely be for small amateur projects that are lucky if they average 1 QPH, 
let alone 1 QPS.


> The latter part is what really worries me. We really need to be sure 
> that the protocol that we create allows for an implementation of a 
> server to do these things.

I agree that we shouldn't make the protocol impossible to scale. If there 
are specific features in the protocol that make it impossible to scale, 
please do raise these as issues. However, one doesn't have to make a 
protocol complex to make it scale.


> If the (hopefully small) added complexity is too much for the amateur 
> programmer, then they should use the API level.

What I'm interested in personally is writing a protocol that amateur 
programmers can implement easily. If we say they have to use someone 
else's code to do this, then that's a failure, IMHO. (Though as I've 
mentioned before, if people have different goals or priorities, I have no 
problem with separate protocols also being designed to address those -- 
Web Sockets doesn't have to be everything for everybody.)

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'