Re: Email client APIs. features. amd siupport (was: Re: Scope for self-destructing email?)

Phillip Hallam-Baker <phill@hallambaker.com> Thu, 24 August 2017 22:04 UTC

Return-Path: <hallam@gmail.com>
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 73839132441 for <ietf@ietfa.amsl.com>; Thu, 24 Aug 2017 15:04:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.399
X-Spam-Level:
X-Spam-Status: No, score=-2.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.199, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 e8yNBK7DqwZ7 for <ietf@ietfa.amsl.com>; Thu, 24 Aug 2017 15:04:19 -0700 (PDT)
Received: from mail-lf0-x235.google.com (mail-lf0-x235.google.com [IPv6:2a00:1450:4010:c07::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5108913235C for <ietf@ietf.org>; Thu, 24 Aug 2017 15:04:19 -0700 (PDT)
Received: by mail-lf0-x235.google.com with SMTP id y15so3245568lfd.0 for <ietf@ietf.org>; Thu, 24 Aug 2017 15:04:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=qmdJozAoWxlDQ9c94DlrhM54lsY6IQzNwyLNo5dMbTo=; b=m3kM5Upz6Nvb2FT8iP7JGFT3QfvVS3FXfKDiE/nUZyp8/oIxCJWFTRAvLfOAfp4KVg N6lWW/K3AYiH6SKKZ5UkrwC5FoYHAuhLYPlbUb3VfWS6ep0DEzcSt5Sz2YYXfkBzzMq+ 571KsC/PXS6PrD7Is3yeo92Hy+TDYKSWnRKF7XU0/TIJXIchR8mejtx+bEBMf/A4QCK4 FM1ozWgBaqJL3hIaigBFqH9cNMYQiIBcgLyuTIMMHzcxsUV1fhflZZFs4sPk4k7seEIP GVDXtuhapmCPwoz6747FXOJa02cLspZS25O3Yqs5sF6vivZWoQzm0UMouU+znMLpqc0H jxog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=qmdJozAoWxlDQ9c94DlrhM54lsY6IQzNwyLNo5dMbTo=; b=QlRYge5gKZJB0Q2S909wwsD/r3OsRqgwteJVK4xHmPzbN7JsL12vbCShdUo6knCllY pLd/PNKbltngBQK2IHTutwXM8pDQqmW3AKAVj7ZDvkGOa7kZewsO4tJBTsEc0SQGfEkm H4Zdrv/3LPF3xFXJE1JHdyM2OGrohws8qU/BgkjNRMi61sOeQ/tzhbaEb7mna+hDf87o doOAPk+Ymy814QhXTlOIlxco8XLvS4mkQuvs5zGyw8kssK5iogXpknE/NBXpG8AsSG0g zkjjjtYTXzSjfOYeRI+QdCuKoG+WNgX0gbAlYuNLusl3y4h/pz5U9NAYGaxmkfPiNRO+ P0mw==
X-Gm-Message-State: AHYfb5gy9MwigW5YVxXnOrtg5czFx8yQdFeqjOe0wzzL3rmRLT6ZWW1e baWUywEfgUl+VUGS3XVrb8pz9gi6qQ==
X-Received: by 10.25.168.144 with SMTP id r138mr3049623lfe.15.1503612257526; Thu, 24 Aug 2017 15:04:17 -0700 (PDT)
MIME-Version: 1.0
Sender: hallam@gmail.com
Received: by 10.25.142.199 with HTTP; Thu, 24 Aug 2017 15:04:16 -0700 (PDT)
In-Reply-To: <E472D28FF44BD58F88258ACC@PSB>
References: <20170821170258.GA21915@faui40p.informatik.uni-erlangen.de> <E472D28FF44BD58F88258ACC@PSB>
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Thu, 24 Aug 2017 18:04:16 -0400
X-Google-Sender-Auth: ZR1zONijfT3QxuH5vX4Cr2fHsZ0
Message-ID: <CAMm+LwjNy4YS=cuW93zcy6Snp_jiTZ3jYLPAPqdUvyeVEreARw@mail.gmail.com>
Subject: Re: Email client APIs. features. amd siupport (was: Re: Scope for self-destructing email?)
To: John C Klensin <john-ietf@jck.com>
Cc: Toerless Eckert <tte@cs.fau.de>, vaibhav singh <vaibhavsinghacads@gmail.com>, IETF Discussion Mailing List <ietf@ietf.org>
Content-Type: multipart/alternative; boundary="001a114113107d69ed05578702b4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/dfVY5z69pd21E2pTIUcy-EuMLjU>
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: Thu, 24 Aug 2017 22:04:22 -0000

On Tue, Aug 22, 2017 at 10:10 AM, John C Klensin <john-ietf@jck.com> wrote:

>
>
> --On Monday, August 21, 2017 19:02 +0200 Toerless Eckert
> <tte@cs.fau.de> wrote:
>
> > John,
> >
> > I did like to use a couple of those nice email functions driven
> > by special headers. IMHO the main reason why those never
> > catched on is the absence of easy ways for users to figure out
> > how much their software (MTU/MUA) sucks.
> >
> > One thing IMHO that would help are mechanisms to provide users
> > with an easy ability to learn what their software is claiming
> > to support, and what's missing. User experience should be some
> > web-page that explains this to the user in easy terms and
> > ideally even suggests to create RFE emails to the vendors. The
> > question would then be what standards APIs one would need to
> > enable interested third parties to generate such web pages
> > (including IETF).
> >...
>
> Interesting idea, but a very different discussion (hence the
> change of subject lines).   As you know, the IETF has tended to
> avoid API specifications, largely because we have preferred
> performance standards (i.e., "this is what you need to do and
> support") to implementation ones ("this is the API, probably
> expressed on code or pseudocode, all you need to do is call
> it").  We've also tended to focus on what happens or is
> transmitted on the wire between machines rather than how and
> what things are dong or implemented before the bits leave a
> source system or after they get to a destination one.    In
> addition, many people have argued strongly that we should,
> insofar as possible, stay out of the UI business, in part
> because the IETF, as a community, demonstrably has no skill in
> the area.
>

​As you say later, this sort of thing needs regular review. As we go up the
stack, the difference between an API and a protocol quickly blurs and
eventually vanishes. ​

​Protogen is a tool I use to generate protocol specifications and reference
code from a common schema. It is similar in concept to YANG except being
designed to be used at a much higher level. Here is an example of a
specification written using it:

http://prismproof.org/Documents/draft-hallambaker-mesh-confirm.html​

​The API for the client library and server dispatch methods is ​generated
from the same schema that generated the documentation. So a protocol
specification is an API.

This is not the case for most IETF specs, of course, not even application
specs. The 'cost' of doing that is that many of the choices that protocol
designers often make are fixed:

* Encoding, is JSON
​* Discovery is SRV
* ​Presentation is HTTP

​I believe that making these choices consistent improves the spec. ​


​The API is not the same as the user experience of course. But the design
of an application protocol is ​mostly a choice of

* Which information to store at the client vs the server
* The ways the information is to be indexed at the server