Re: [imap5] Designing a new replacement protocol for IMAP

Adrien de Croy <adrien@qbik.com> Mon, 13 February 2012 20:27 UTC

Return-Path: <adrien@qbik.com>
X-Original-To: imap5@ietfa.amsl.com
Delivered-To: imap5@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F8B321F8595 for <imap5@ietfa.amsl.com>; Mon, 13 Feb 2012 12:27:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.81
X-Spam-Level:
X-Spam-Status: No, score=-5.81 tagged_above=-999 required=5 tests=[AWL=-3.341, BAYES_00=-2.599, SARE_RMML_Stock10=0.13]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xeoHOb1aYbUz for <imap5@ietfa.amsl.com>; Mon, 13 Feb 2012 12:27:27 -0800 (PST)
Received: from smtp.qbik.com (smtp.qbik.com [210.55.214.35]) by ietfa.amsl.com (Postfix) with ESMTP id 8007B21F848C for <imap5@ietf.org>; Mon, 13 Feb 2012 12:27:26 -0800 (PST)
Received: From [192.168.1.10] (unverified [219.89.217.118]) by SMTP Server [210.55.214.35] (WinGate SMTP Receiver v7.1.0 (Build 3381)) with SMTP id <0018861388@smtp.qbik.com>; Tue, 14 Feb 2012 09:27:23 +1300
Message-ID: <4F397212.1030107@qbik.com>
Date: Tue, 14 Feb 2012 09:26:58 +1300
From: Adrien de Croy <adrien@qbik.com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20120202 Thunderbird/11.0
MIME-Version: 1.0
To: Cyrus Daboo <cyrus@daboo.name>
References: <1328732126.32086.140661033971485@webmail.messagingengine.com> <201202090820.28260.thomas@koch.ro> <4F337E61.5040702@qbik.com> <201202101544.51364.thomas@koch.ro> <833EE8EEE88E4ADE5CDDDADB@caldav.corp.apple.com> <4F3835A1.7060804@qbik.com> <B764BD8C8B6047E659EABBE2@caldav.corp.apple.com>
In-Reply-To: <B764BD8C8B6047E659EABBE2@caldav.corp.apple.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: imap5@ietf.org
Subject: Re: [imap5] Designing a new replacement protocol for IMAP
X-BeenThere: imap5@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion on drastically slimming-down IMAP." <imap5.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imap5>, <mailto:imap5-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imap5>
List-Post: <mailto:imap5@ietf.org>
List-Help: <mailto:imap5-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imap5>, <mailto:imap5-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2012 20:27:28 -0000

Hi Cyrus

I guess we are on different pages for what we want out of a mail 
protocol and where we want it to go.  Sorry if this mail rambles a bit.

Also taking into account Mark and others' comments.

Maybe we need to start with what we want to achieve... which actually 
Bron did do at the start.  All of us have various different histories 
when it comes to mail.

When I first implemented our IMAP server, I was firstly struck by the 
unusual syntax, parsing requirements, and then the missing bits - lack 
of completely defined folder management protocol support, and the highly 
problematic dual-indexing (no UID in expunge response!!!).   History 
obviously plays a huge part, but it's not 1998 any more.

Then I was hit with the quirks of the implementations (e.g. TB ignores 
unsolicited responses unless it issued an IDLE).  I've spent a lot of 
time evaluating IMAP clients, none of them are what I would call great 
(for my use).

In terms of features, it seems over half the feature set nowadays is 
optional protocol extensions, which basically means no-one can count on 
them being there.

So, I'm approaching this whole thing from a mail-user perspective, since 
I also am one.  I think usability could be greatly improved if the 
protocol supported it.

My issue with XMPP isn't with the protocol per-se, but just that if 
you're outside a firewall, someone needs to open another hole so you can 
access the XMPP server.  It introduces another point of failure for the 
system.  If we were to rely on XMPP for notifications, we would just be 
adding support tickets like "my mail client doesn't notify me when I get 
new mail".  I already get "I can retrieve mail but not send".  Also you 
then need to have hooks into it at both ends, and define some sort of 
addressing system so the XMPP server can know what the client wants it 
to provide notifications about, and hooks in the back end of the 
services so it can get them.  Lots of points of failure.

I don't know how many of you spend a lot of time on customer support 
desks.  I do.

So I think maybe we need to take a step back.  If we want people to 
implement something new, it has to have some compelling reasons.  I 
don't think just interop is that compelling since it's not completely 
awful at the moment, and I think that is not thinking big enough.  We 
could do so much more.  If we're going to do a new mail protocol, we 
need to think what we want it to be like, with the benefit of however 
many decades of experience.

Mark is right in that the problems that IMAP solves are often problems 
that will also need solutions in a new system.  I don't believe 
implementing a new protocol means doing all that work again.  I've 
refactored enough code to know the thing you keep is the knowledge, even 
if the syntax changes.  So, anyway for me an incremental change to IMAP 
isn't horribly interesting.  Sure we can fix some things, but the way 
the protocol is extended and requirement for backwards compatibility is 
always going to hamstring us.

For me something more interesting would be a protocol that allows a 
client to provides the best possible mail user experience. And doing 
that using a single connection.

The reason for a single connection (could maybe be relaxed to a single 
port) is simply to reduce deployment issues.  One username, one 
password, one port to open.  That's the minimum number of things to go 
wrong, and minimum number of things to support.

If a vendor knows that by moving to a new mail protocol their customer 
support issues can halve, that's very compelling.
If a vendor knows that by using a new protocol they can drastically 
improve their users' mail experience, that's very compelling.

For me, I'd like something that:

* is fast, even over low bandwidth or latent connections
* is simple to deploy for administrators and users
* gives me all the mail functions I could need, including calendar etc.
* gives me cool new functions, like telling me the mail address I just 
typed into the destination field is bad even before I finished typing 
the subject line.
* works well with multiple clients (e.g. home and office, and on the road)

And no, I don't believe for a second this will happen overnight.

Cheers

Adrien


On 14/02/2012 4:20 a.m., Cyrus Daboo wrote:
> Hi Adrien,
>
> --On February 13, 2012 10:56:49 AM +1300 Adrien de Croy 
> <adrien@qbik.com> wrote:
>
>>> So, in my opinion, whilst push notifications should be a requirement
>>> for imap5, we should not define that protocol and instead push the
>>> IETF to provide such a protocol for general use.
>>>
>>
>> I don't think that's a workable approach.
>>
>> Getting such a protocol together, which enables notifications from any
>> other application protocol I think will take a very long time, if it can
>> even succeed.  It's hard enough getting consensus within one protocol
>> working group, let alone all of them working together.
>>
>> Also every different protocol has different notification requirements.
>> trying to cover all that in a single protocol I think would be 
>> difficult.
>
> I disagree because what I envisage for the generic notification 
> service is an OS-level api (supplied by OS or 3rd party libraries) 
> that implement the "internet push service protocol". What that means 
> is that client developers only have to implement a simple api to get 
> push notifications. What is more anyone implementing more than one 
> protocol in their client (e.g. IMAP, CalDAV and CardDAV) would only 
> have to implement that once, albeit with some minor differences in 
> regard to how to get protocol specific pieces for registering for 
> notifications.
>
> Your point about actually getting this done is valid. But 
> realistically, do you really think IMAP5 is going to deploy overnight? 
> Frankly, anyone who has a reasonably solid IMAP4 implementation today 
> is going to question the need to work on something new, particularly 
> if that something new brings nothing to the table (and simply fixing 
> interop problems will probably not be seen as something "new"). If you 
> can actually show that IMAP5 adds significant value by doing things 
> like helping centralize push notifications, simplifying submission 
> etc, then maybe, just maybe, those existing implementors might 
> actually consider throwing out their current investment in IMAP4 for 
> the new thing. But, IMHO, you are really going to have to up-sell 
> IMAP5 to get buy-in from the major email providers. Now that does not 
> mean it is not worth doing, but it does mean having to do more than 
> just fixing perceived or real deficiencies.
>

-- 
Adrien de Croy - WinGate Proxy Server - http://www.wingate.com