Re: [hybi] Resolving Issue 11 - Amateur programmer requirement [was: Extensibility mechanisms?]
Pieter Hintjens <ph@imatix.com> Fri, 23 July 2010 08:38 UTC
Return-Path: <pieterh@gmail.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 4D5E73A6834 for <hybi@core3.amsl.com>; Fri, 23 Jul 2010 01:38:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.623
X-Spam-Level:
X-Spam-Status: No, score=0.623 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
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 YXT+E505rV8d for <hybi@core3.amsl.com>; Fri, 23 Jul 2010 01:38:25 -0700 (PDT)
Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by core3.amsl.com (Postfix) with ESMTP id C800B3A67DA for <hybi@ietf.org>; Fri, 23 Jul 2010 01:38:24 -0700 (PDT)
Received: by wyb40 with SMTP id 40so1428975wyb.31 for <hybi@ietf.org>; Fri, 23 Jul 2010 01:38:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=bevpDQ/3fsQvgRn8hq/6jZQB9aDxq0km6kkoBZ6tEf0=; b=xUMZ1f5DYfxQ8FcFv6q5FQdoN1Qlh+p+RqG8K8Jq3U1RviGoRIRYYUloPoWbJ+M02U iATJUSoPauPYVa8205TrZIUdmWr+ybao5cvzIi+fhXTNgm1etyB68mBjfm0VPAW23FlC +8idrJRReLsuNhZRrJwcy0msH/WXOTKQ5+sU8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; b=DFvYUASsf+oWGu1MDHGYJvdhTGTtTdqNyqmUWz0mTatzVmA8Tf+nysOC0PMlFbOycL khhCE1DIxJWA1sjSpCavrfSDbC7uFcDDnrQ7Z4C752uEfaHsR6A9+QyJljgKBzp3JuWq 0kI0aIyFHKKxarVnPsTY6v5jHx4Eyfg5AeGRg=
Received: by 10.216.168.198 with SMTP id k48mr3052523wel.105.1279874321938; Fri, 23 Jul 2010 01:38:41 -0700 (PDT)
MIME-Version: 1.0
Sender: pieterh@gmail.com
Received: by 10.216.171.146 with HTTP; Fri, 23 Jul 2010 01:38:21 -0700 (PDT)
In-Reply-To: <1215617487.77672.1279854143695.JavaMail.root@cm-mail03.mozilla.org>
References: <AANLkTim=2hHLTT7s_s_qg_rejfxAPEvLJygMv5UXmqM0@mail.gmail.com> <1215617487.77672.1279854143695.JavaMail.root@cm-mail03.mozilla.org>
From: Pieter Hintjens <ph@imatix.com>
Date: Fri, 23 Jul 2010 10:38:21 +0200
X-Google-Sender-Auth: b5YKXWhFYMiJ7DC2_tS_b7wi1vE
Message-ID: <AANLkTikHFkq50E0Yy83czoPubckmK58UWYcsvi+DJrhD@mail.gmail.com>
To: Robert Sayre <rsayre@mozilla.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: hybi@ietf.org
Subject: Re: [hybi] Resolving Issue 11 - Amateur programmer requirement [was: 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: Fri, 23 Jul 2010 08:38:26 -0000
On Fri, Jul 23, 2010 at 5:02 AM, Robert Sayre <rsayre@mozilla.com> wrote: > Well, I'm not sure. The "amateur programmer" is a pretty terrible construct. > > It's unmeasurable and untestable, so it makes no sense as a requirement. The only way to find out whether hobbyists will be interested in writing servers is to finish the standard and see what they do. It's ultimately not that interesting though--many successful standards have relatively few implementations that everyone relies on. > > Any argument for simplicity probably has a better rationale than the needs of an imaginary "amateur programmer." Let's stick to substance. Indeed. That requirement by itself makes some serious unproven assumptions. * First, that amateur programmers are somehow lacking in knowledge and experience. Many people program for fun, as amateurs, but with years or decades of professional experience. If we want to make the protocol accessible to programmers with less than a year or so of practical experience, let's say so explicitly. "WebSockets must be comprehensible for programmers with less than 12 months of experience". * Second, that explaining the protocol in baby steps and using dumbed-down constructs is easier to understand, for programmers with more or less experience. That is patronising and makes no sense. Are we trying to address programmers with lower IQs rather than less experience? Then we should say so explicitly. "WebSockets must be comprehensible for programmers with IQs of 90". * Third, that this pandering to the weak-minded correlates with simplicity, while building a protocol for smarter programmers with sufficient experience ("professionals", to continue this nasty use of language), correlates to complexity. No, simplicity comes from reusing experience and doing it *right*, and that requires massive experience, which is why organisations like the IETF exist. * Fourth, that making a protocol accessible to inexperienced, less intelligent programmers will ensure its success. That suggests that the successful protocols of the world were build by inexperienced idiots, which would be insulting if it was not so obviously taken from The Onion. "Schoolkid (5) invents Internet 2, sells to Google for $50bn". I'm not sure whether it's more tragic to consider this requirement as "serious editorial input", or as a sophisticated troll. If the goal is to achieve wide implementation, the protocol should be clearly written so that experienced, smart programmers can implement it without shock or surprise, and build interoperable stacks that work as expected. That might make a concrete requirement. Here are some Twitter comments I found from one (smart and experienced) developer implementing server-side support for WebSockets: * "No! You idiots, do not make HTTP headers in WebSockets *unicode* when HTTP itself is not: http://is.gd/dz13m Protocol layers do not need it!" * "Putting crap between 0x00 and 0xFF characters is NOT FRAMING: http://is.gd/dz13m A frame has a size component so you can send binary data." * "Ok, if you've written forty-five (!) steps for how a *client* connects a WebSocket then you should realize you need to redesign something." -Pieter
- [hybi] Resolving Issue 11 - Amateur programmer re… Ian Fette (イアンフェッティ)
- Re: [hybi] Resolving Issue 11 - Amateur programme… Mark Nottingham
- Re: [hybi] Resolving Issue 11 - Amateur programme… James Graham
- Re: [hybi] Resolving Issue 11 - Amateur programme… Robert Sayre
- Re: [hybi] Resolving Issue 11 - Amateur programme… Ian Fette (イアンフェッティ)
- Re: [hybi] Resolving Issue 11 - Amateur programme… Julian Reschke
- Re: [hybi] Resolving Issue 11 - Amateur programme… L.Wood
- Re: [hybi] Resolving Issue 11 - Amateur programme… Pieter Hintjens
- Re: [hybi] Resolving Issue 11 - Amateur programme… Willy Tarreau