Re: [hybi] Extensibility mechanisms?

Scott Ferguson <ferg@caucho.com> Sun, 18 April 2010 21:23 UTC

Return-Path: <ferg@caucho.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 9C6F33A69B7 for <hybi@core3.amsl.com>; Sun, 18 Apr 2010 14:23:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.184
X-Spam-Level:
X-Spam-Status: No, score=-0.184 tagged_above=-999 required=5 tests=[AWL=-0.185, BAYES_50=0.001]
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 D74xjZx3+2N3 for <hybi@core3.amsl.com>; Sun, 18 Apr 2010 14:23:26 -0700 (PDT)
Received: from smtp111.biz.mail.re2.yahoo.com (smtp111.biz.mail.re2.yahoo.com [66.196.116.96]) by core3.amsl.com (Postfix) with SMTP id 2AC3B3A6942 for <hybi@ietf.org>; Sun, 18 Apr 2010 14:23:05 -0700 (PDT)
Received: (qmail 7879 invoked from network); 18 Apr 2010 21:22:55 -0000
Received: from [192.168.1.10] (ferg@66.92.8.203 with plain) by smtp111.biz.mail.re2.yahoo.com with SMTP; 18 Apr 2010 14:22:54 -0700 PDT
X-Yahoo-SMTP: L1_TBRiswBB5.MuzAo8Yf89wczFo0A2C
X-YMail-OSG: O.CX8gcVM1k2K.IPrwnwWDbNFJuApfkRO374fCmE8NB1aFZDl9EolPG6MDBGPHzQnuwSRwiso7FGLHcrubgOfUSe3KrALJBYdG03EPRkYtlOG3FkIeizMu3MQqBvdkprpmNdxYYVKqynqedj2g4HikkmoZk4te.8Cb6J4FvpsxklqqGUiEYe0RolIDXFvRuEPTkjY_LjZmgjo1L3RBexz36PyYxQ0V3SyBN4hjNtl9PHSGSexbq5qeRvopUMxsz5Fxa.O0X5TdiiWYJ5rWROD_y5na812wIsosk5TxyZXEFQW5v7IUF26Xr2267H3Soe4rHIzEspgx_1WcIw4yAjZaQGKerZdob8nj6CMfQfI.fXbH.uTjffAr_MZuQUiqFlrn2bqDSArO0PIvnvCRoOt1Xn3IA9HIKa2Ko5CzmkHLLttBGzTXI_MTj944XmntObVsFGO_pkDA--
X-Yahoo-Newman-Property: ymail-3
Message-ID: <4BCB7829.9010204@caucho.com>
Date: Sun, 18 Apr 2010 14:22:49 -0700
From: Scott Ferguson <ferg@caucho.com>
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
MIME-Version: 1.0
To: Maciej Stachowiak <mjs@apple.com>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <Pine.LNX.4.64.1004160701250.751@ps20323.dreamhostps.com> <4BC860FD.8080007@webtide.com> <Pine.LNX.4.64.1004161952530.751@ps20323.dreamhostps.com> <4BC96A0D.4080904@webtide.com> <Pine.LNX.4.64.1004180246380.751@ps20323.dreamhostps.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com>
In-Reply-To: <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Sun, 18 Apr 2010 21:23:32 -0000

Maciej Stachowiak wrote:
> Why do I take this view? A large part of the Web's success has come 
> from the "long tail" of content that exists only because the 
> underlying formats and protocols make it easy to do simple things. 
> This has led to the explosive growth of the Web. At the same time, 
> it's clearly important to consider the needs of larger organizations 
> as well. A solution that works for Joe Hobbyist Programmer at home, 
> but doesn't meet the needs of, say, Facebook or Yahoo, is not a 
> complete solution. Large sites are clearly a critical part of the 
> Web's success as well.
I think a little more precision is important here.

The client and server APIs must be suitable for amateur programmers, and 
the wire protocol must support those simple APIs, but it's _not_ 
important that the wire protocol be implementable by someone who can't 
understand buffering, chunking or encoding. After all, HTTP/1.1 requires 
those capabilities.

The "long tail" in HTTP is enabled by the server APIs: CGI, mod_xxx, 
PHP, Servlets, ASP, etc, and the client javascript API. It is indeed 
very important that the server-side and client-side APIs for WebSockets 
be usable by hobbyist programmers to do simple things.

However, the "long tail" are not writing hobbyist HTTP client or server 
protocol implementations.

In addition, WebSockets is intrinsically multithreaded, which makes the 
claim that it's aimed at amateur implementers bizarre. WebSockets 
requires threading/async handling on both ends, which is beyond the 
capabilities of these hypothetical amateur programmers who cannot encode 
a simple frame. Programmers who can implement a threaded/async server 
can handle the trivial framing we're discussing. If they can't handle 
the framing, the threading/async requirements are beyond them.

That's not a license to create CORBA 2, but does mean it's reasonable to 
require a basic level of competence from implementers.

-- Scott
>
> I think ultimately these two goals are not fundamentally at odds. It 
> may be more challenging to satisfy both sets of needs, but we have a 
> lot of smart people here so we should be able to figure it out.
>
>
> Regards,
> Maciej
>
>
>
>
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>
>
>