Re: [Jmap] Best vs Good enough - adoption of JMAP

"Chris Newman" <chris.newman@oracle.com> Tue, 25 April 2017 00:39 UTC

Return-Path: <chris.newman@oracle.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C15A013197B for <jmap@ietfa.amsl.com>; Mon, 24 Apr 2017 17:39:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.222
X-Spam-Level:
X-Spam-Status: No, score=-4.222 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, 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 MlTtBD4MOr4X for <jmap@ietfa.amsl.com>; Mon, 24 Apr 2017 17:39:20 -0700 (PDT)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 27EC3126B72 for <jmap@ietf.org>; Mon, 24 Apr 2017 17:39:19 -0700 (PDT)
Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v3P0dIVj029161 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Apr 2017 00:39:19 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id v3P0dHLe024889 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 25 Apr 2017 00:39:18 GMT
Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id v3P0dF0w001421; Tue, 25 Apr 2017 00:39:16 GMT
Received: from [10.145.239.181] (/10.145.239.181) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 24 Apr 2017 17:39:15 -0700
From: Chris Newman <chris.newman@oracle.com>
To: Adrien de Croy <adrien@qbik.com>
Cc: "jmap@ietf.org" <jmap@ietf.org>
Date: Mon, 24 Apr 2017 17:39:12 -0700
Message-ID: <46F700A6-C2B1-488B-A8B4-6ACD45B03C31@oracle.com>
In-Reply-To: <em8b177018-4769-44ea-b033-90bd8155d11b@bodybag>
References: <em8b177018-4769-44ea-b033-90bd8155d11b@bodybag>
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"
X-Mailer: MailMate (1.9.6r5347)
X-Source-IP: userv0022.oracle.com [156.151.31.74]
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/0IDAoYkJ-MQRlseZh52KHrtpuYQ>
Subject: Re: [Jmap] Best vs Good enough - adoption of JMAP
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Apr 2017 00:39:22 -0000

On 24 Apr 2017, at 15:43, Adrien de Croy wrote:
> On the topic of best vs good enough.

This is a misleading dichotomy for an engineering discussion. My 
immediate response when you say "best" is "best for whom?" If you design 
the best possible protocol for end-user experience, it will place 
unreasonable requirements on servers and won't deploy. Good engineering 
involves tradeoffs, cost/benefit analysis, deployability analysis, 
extensibility design, etc.

> I agree they are perhaps opposed, you could say that good enough is 
> the enemy of best however, since once you have something that is good 
> enough, your incentive to do any better is greatly diminished.
>
> However, we are up against several obstacles when it comes to adoption 
> of JMAP.
>
> 1. Server authors won't want to add support unless there are clients
> 2. Client authors won't want to add support unless there are servers
> 3. Client or server authors won't want to add support unless they can 
> make things significantly better for mail users.

I've never heard of a mail client author implementing a feature before 
the server exists. Server authors are the ones who have moved first in 
the email community. So the key to JMAP deployability is to make it not 
unnecessarily hostile to server developers (like myself) and server 
operators. But I agree we also want JMAP to provide significant benefits 
to client authors and their users. There are many design choices JMAP 
can make that meet all of these goals.

> 4. We are losing customers to alternate messaging systems.
>
> If our target is just going to end up providing no benefits to users 
> over what we already have with IMAP+SMTP, then nobody will bother.
>
> Where it gets interesting for me personally at least is if we can push 
> the boundary of mail experience.  In many cases this can be done in 
> the MUA but in some cases it requires support from the protocols.
>
> I hear the arguments that the more complex we make the spec, the less 
> likely it will be implemented, at least correctly. I'm not a fan of 
> complexity either, and neither of my suggestions do I consider to be 
> particularly complex.
>
> My argument is that if the design doesn't hold out a carrot for better 
> mail experience for users, then nobody will bother, and we're wasting 
> our time here, which would be a shame because we have the potential to 
> achieve a lot here.
>
> At the moment, there is a benefit on the table, mostly being the 
> ability to only require configuration of access to 1 service (that's 
> if JMAP does submission).
>
> I believe we should be looking for opportunities to make mail the best 
> experience possible, come up with ideas, and we may decided to defer 
> some or not implement others, but we should keep them in mind so that 
> perhaps we don't close off the path to some of them.  We don't need 
> another protocol that is hamstrung by lack of foresight.
>
> there are plenty of ideas around, look at the competition.

Email is the most widely deployed multi-vendor messaging system on the 
Internet. The major value of doing JMAP as a standard is to get 
multi-vendor deployment. A walled garden will always have features that 
an open multi-vendor system can't achieve (simply for privacy reasons). 
Yes, we should look at the features that are popular in walled garden 
messaging systems and do a cost/benefit analysis. If the cost is low and 
benefit is high, let's consider it. But if the cost is high or the 
feature will involve a lot of careful design work and is outside the 
charter scope, then you'll get opposition to adding that feature to the 
JMAP base spec.

A multi-vendor standard needs to support both small and large 
deployments and support both cloud and on-premises deployments. There 
are hundreds of deployed IMAP and Submission server implementations on 
the Internet and JMAP will deploy a lot faster if it "plays well" with 
those implementations. And by "play well", I mean it can be added to an 
existing deployment without major infrastructure changes.

For example, if I'm operating a million-user deployment, it's critical 
to monitor the mail queues for problems. The proposed JMAP "outbox" 
model means I'm adding one million new mail queues to the monitoring 
system. That's a major deployment change; and thus a significant barrier 
to JMAP deployability.

Suppose we remove the "outbox" model from JMAP and replace it with a 
submission command with envelope extensions. Now suppose we want to 
require JMAP servers to support BINARYMIME submission (and/or append) as 
a boon to JMAP submission client authors? Well that's no problem from an 
infrastructure viewpoint as long as the JMAP server is permitted to 
perform the base64-encoding on binary message parts at submission/append 
time in order to remain compatible with IMAP mail stores (and 
non-BINARYMIME submission servers). Want to have the JMAP submission 
command handle both the \Sent folder copy and the Submission without 
duplicate data transmission? I think we need to do that. Want to have 
the base JMAP submission or append command include IMAP CATENATE 
functionality (assemble a message including server-stored attachments in 
order to "forward without download")? I have no problem with that.

There's quite a bit of room to improve the JMAP client author's 
experience without forcing major infrastructure changes. The WG exists 
to discuss the cost/benefit of various features and make an engineering 
judgment call. The proposals that are most likely to succeed are ones 
that can be implemented in a JMAP proxy without significant changes to 
IMAP/Submission. And proposals that would require reasonably 
straightforward or well-understood IMAP/Submission extensions are worth 
considering (e.g., if I need a per-user unique/persistent message 
identifier for IMAP, I understand the implications of that).

So the opposition you're seeing is to making fundamental architecture 
changes to the Internet email infrastructure or adding complex new 
mandatory features that have a poor cost/benefit. If you want to do 
that, go design your own walled-garden protocol. But if you want to make 
the client author experience better in a way that can deploy across 
email systems from multiple vendors, then this is the place to make and 
refine proposals that strike a deployable balance.

Sorry for the meta-discussion, but I got the impression you had 
misinterpreted opposition to infrastructure disruption as opposition to 
improving the client experience.

		- Chris