Re: letting IETF build on top of Open Source technology

Miles Fidelman <mfidelman@meetinghouse.net> Mon, 06 November 2017 01:43 UTC

Return-Path: <mfidelman@meetinghouse.net>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7A41C13FD2A for <ietf@ietfa.amsl.com>; Sun, 5 Nov 2017 17:43:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M6-RgbvyzArb for <ietf@ietfa.amsl.com>; Sun, 5 Nov 2017 17:43:52 -0800 (PST)
Received: from server1.neighborhoods.net (server1.neighborhoods.net [207.154.13.48]) by ietfa.amsl.com (Postfix) with ESMTP id 021EA13FC02 for <ietf@ietf.org>; Sun, 5 Nov 2017 17:43:51 -0800 (PST)
Received: from localhost (localhost.localdomain [127.0.0.1]) by server1.neighborhoods.net (Postfix) with ESMTP id 25830CC495; Sun, 5 Nov 2017 20:43:51 -0500 (EST)
X-Virus-Scanned: by amavisd-new-2.6.2 (20081215) (Debian) at neighborhoods.net
Received: from server1.neighborhoods.net ([127.0.0.1]) by localhost (server1.neighborhoods.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id xTLKTRsY7ISY; Sun, 5 Nov 2017 20:43:50 -0500 (EST)
Received: from Miless-MacBook-Pro.local (71-223-225-69.phnx.qwest.net [71.223.225.69]) by server1.neighborhoods.net (Postfix) with ESMTPSA id B31C3CC494; Sun, 5 Nov 2017 20:43:49 -0500 (EST)
Subject: Re: letting IETF build on top of Open Source technology
To: Phillip Hallam-Baker <phill@hallambaker.com>
Cc: IETF Discussion Mailing List <ietf@ietf.org>
References: <CAG4d1rev-e2_CbPqjNjwD_wgNL=rS_BJ6KL=0f5VZJe=t=k9yg@mail.gmail.com> <6.2.5.6.2.20171101132245.10d04f48@elandnews.com> <CAG4d1rc2k4A53DXJW0NSZbrjSBQoK6uc-u1G2PwEJfoM2w5i-A@mail.gmail.com> <CAMm+LwjLySeeNigm-nTbBjFkQ+7=UqjXAB4qk4Kwau_C9Q_3Tw@mail.gmail.com> <a72fab79-1c5b-07a2-b21d-efe4491d9339@meetinghouse.net> <CAMm+Lwi-_sECr0Ls6fUk6VJTGovS4_zk-BO8_2gHWHS8P8+xbQ@mail.gmail.com>
From: Miles Fidelman <mfidelman@meetinghouse.net>
Message-ID: <df50fa83-0fd6-3605-723e-2c76c4a1ec09@meetinghouse.net>
Date: Sun, 05 Nov 2017 18:43:48 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <CAMm+Lwi-_sECr0Ls6fUk6VJTGovS4_zk-BO8_2gHWHS8P8+xbQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/chJ97MPJZIqJkxjiPxnAPj_UDBY>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Nov 2017 01:43:53 -0000

Meant to reply earlier - on a trip...

On 11/3/17 5:07 AM, Phillip Hallam-Baker wrote:

> On Thu, Nov 2, 2017 at 1:01 PM, Miles Fidelman
> <mfidelman@meetinghouse.net> wrote:
>> On 11/1/17 10:35 PM, Phillip Hallam-Baker wrote:
>>
>>> My specifications are my code.
>>>
>>> If you look at any of the protocol specifications for the Mesh, you
>>> will find a reference section in the back that is generated directly
>>> from the schema and examples taken from running code generated from
>>> the same schema. And the running code used to generate the examples is
>>> the same as the reference code.
>>>
>> That's a little bit disingenuous, isn't it - particularly since you've
>> written quite a bit of documentation beyond your code.
> I did not say my code is my specification. Which is what a lot of
> people have done in the past.
>
> I develop the documentation and the code at the same time. Of course
> there are parts of the documentation that are not code, the user
> guide, requirements, etc. But every specification has normative and
> non-normative sections.

More precisely, can you elaborate just a tad on HOW your "specifications 
are your code?"

I've taken a look at some of the documentation you've pointed at, but 
have yet to find any that have "a reference section in the back that is 
generated directly from the schema and examples taken from running code 
generated from the same schema" - can you perhaps give a specific reference?

And can you say just a tad more about the representation of the schema, 
your tool chain, and process?  (Without taking a really deep dive, what 
I surmise is that the Goedel tools can ingest ASN and generate code - am 
I reading that correctly?)


>
>> Beyond that, the point of a specification is to DRIVE implementation &
>> testing of multiple, interoperable implementations.  A reference
>> implementation is one thing, but as soon as one specific piece of code
>> (warts & all) becomes the "spec" - it's not really a specification anymore.
> Reference code is not necessarily the same as production. Production
> code should be conservative in what it sends and liberal in what it
> accepts. Reference code should be the other way round. It should
> complain when the sender fails to abide by the strict specification.

Now that is a very good point - well worth remembering.

Miles Fidelman

-- 
In theory, there is no difference between theory and practice.
In practice, there is.  .... Yogi Berra