Re: IETF and APIs

"R. B." <framefritti@gmail.com> Tue, 29 March 2011 09:23 UTC

Return-Path: <framefritti@gmail.com>
X-Original-To: ietf@core3.amsl.com
Delivered-To: ietf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id ACEF628C137; Tue, 29 Mar 2011 02:23:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level:
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
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 HS8gWMJzWVOw; Tue, 29 Mar 2011 02:23:37 -0700 (PDT)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by core3.amsl.com (Postfix) with ESMTP id 69F1128C129; Tue, 29 Mar 2011 02:23:37 -0700 (PDT)
Received: by qyk29 with SMTP id 29so1718124qyk.10 for <multiple recipients>; Tue, 29 Mar 2011 02:25:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=R+3RYTmwWeJmUlaPri7co0tkGy8euzGetQ6ZeaAu9MQ=; b=iHFKMg4u+D35HbD8TtG/o0gRMRJzpjOPxFkJDMxM7IvH6MexW2b9vxXTRMBnZetNKd kTUoCyN8o3rhQN/W8MWOleW0PjqJTvfUyztkVfShjd8+0TBXJaMXXNfiSV2Xv8npUG/m 7wDb8ofdVu2gwk3a+C7K6V+/g9OXBmkDO2NNU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=NkI21t9jdxttfrc6ySIsQTK/JLZ7mj4KlRMHwBe4mtmqLJmCQrPcXziQSDb4pOF/CW J6UnCnp4Yuqx+0xAvzfiUSFN/qNwfokJE8SiJ5aNGUUVaG+49s7I1BZWBTT7b5d0S/+B bCxnjVq9ZHfASyO258BqpIOtJXBNkpvRdjTuE=
MIME-Version: 1.0
Received: by 10.224.105.139 with SMTP id t11mr4446334qao.282.1301390714899; Tue, 29 Mar 2011 02:25:14 -0700 (PDT)
Received: by 10.229.187.6 with HTTP; Tue, 29 Mar 2011 02:25:14 -0700 (PDT)
In-Reply-To: <4126.1301389425.144921@puncture>
References: <tsl1v1q4a4j.fsf@mit.edu> <4D919E0C.3030604@dcrocker.net> <4126.1301389425.144921@puncture>
Date: Tue, 29 Mar 2011 11:25:14 +0200
Message-ID: <BANLkTim9H65iKJu+PpB3d9KLpZs2=yOp2w@mail.gmail.com>
Subject: Re: IETF and APIs
From: "R. B." <framefritti@gmail.com>
To: Dave Cridland <dave@cridland.net>
Content-Type: multipart/alternative; boundary="20cf30684489468e1a049f9ba3f2"
Cc: "iab@ietf.org" <iab@ietf.org>, IETF-Discussion <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Tue, 29 Mar 2011 09:23:39 -0000

2011/3/29 Dave Cridland <dave@cridland.net>

> On Tue Mar 29 09:53:32 2011, Dave CROCKER wrote:
>
>> I think that we should move more into that business.
>>> I see no problem with actually specifying a language-specific API when
>>> the WG involved has the skills to do a good job.
>>>
>>
>> Wow.  What is the list of languages we should work on?  C, C++,
>> Javascript, Java, Python, ...?
>>
>>
>>  COBOL, obviously.
>

Nah...  INTERCAL or APL


> More seriously, C has the benefits that an actual C API can often be
> rapidly pulled into another language, and if reasonably well designed can be
> remodelled for other languages easily.
>
>
>
Although I am not a C fan, I support the idea of (at list) a C-like syntax
to specify the API because of its diffusion and also because, as you say, it
is quite easy to translate a C-specified API to other languages.



>  Another is to do more and better interoperability testing and let the API
>> developers see their deficiencies and fix them.  The benefit of this is that
>> it moves the problem to the folks with the knowledge and incentives to work
>> on it and it takes this very expensive specification task out of the IETF's
>> critical path.
>>
>
> Right, but that's in line (more or less) with what Sam went on to say in
> the paragraph you snipped:
>
>
> "When we do not, specifying abstract interfaces we expect platforms to
> provide still has significant value".
>
> It'll often be sufficient to point out the shortcomings and specify what
> data needs to be accessed and (roughly) what form.
>
> I'm all in favour of this.
>
> Dave.
>

Let me add my +1e10 to the idea that we should (SHOULD?) specify at least a
minimum API, at least at a very abstract level.  I run in this type of
problem recently.  We were discussing about using DCCP for video streaming
and it would have been useful to be able to access from the application the
allowed rate estimated by DCCP.  Missing a standard API, it is not clear if
this is possible.  Maybe the possibility depends on your software vendor,
making portability a nightmare....

I would also like to add my thoughts (0.02) about how the API specification.
 You can have a very abstract description like

   ... the API for the Fast Overlay Obfuscation (FOO) protocol SHOULD allow
the programmer to change the Maximum_Obfuscation_Rate, to select an
Obfuscation_Procedure, ...

This is of course language independent and it describes the constraint that
the API should verify.  On the cons side, it could be that several vendors
implement the abstract description in different way, giving rise to a new
portability nightmare. The alternative to such an abstract description could
be something like

   ... the API for the Fast Overlay Obfuscation (FOO) protocol SHOULD
include at least the following functions

      set_Maximum_Obfuscation_Rate (int rate);
      set_Obfuscation_Procedure (int procedure_index);

This clearly depends on the chosen language. Moreover, if some of the data
used in the API are quite complex (I am thinking, for example, to a X.500
certificate) a syntactically valid description of the API could be very
large.  On the other hand, one would have more uniformity between different
implementations. I do not know which solution is the best one.  I guess it
will depend on the context.


> --
> Dave Cridland - mailto:dave@cridland.net - xmpp:dwd@dave.cridland.net
>  - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
>  - http://dave.cridland.net/
> Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade
>
> _______________________________________________
> Ietf mailing list
> Ietf@ietf.org
> https://www.ietf.org/mailman/listinfo/ietf
>