[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MORG] Why IMAP extensions are (not) used



Thank you for this very good response.

Barry Leiba writes:
 1. RFCs written with the wrong audience in mind.

Many of the RFCs don't make much effort to serve client authors or answer their questions, such as «how should I use this?», «how should I fall back when it isn't supported?». Some RFCs have few examples, some have many, but «many» is not the same as «useful for a particular audience».

I suspect the number of examples is not a factor at all in decisions whether to implement an extension or not.

In fact, I suspect that how the RFC is written is, in general, a minor point.

Maybe you're right. But I know two cases where a perceived lack of readability/blah delayed implementation for literally years, and my part of the world isn't very big.

(And yes, I'm as guilty as anyone else.)

 2. RFCs can be hard to find.

We don't have a list mapping from problem/benefit to the relevant extension(s), and googling doesn't solve that problem well.

This amounts to "publicity", and, surely, the most implemented ones may correlate with the most publicized ones. Alexey once has a web page with a list of which implementations support which extensions. That also addresses your point 4.

I know the page and think not, but it's close-ish. This would be more helpful, e.g.:

  [ extension name ]
     known supporting servers: [ list ]
     known unsupporting: [ list ]
     test accounts/downloads with: [ list ]

3. What if/ifnot.

Clients generally need to implement stuff both for servers that support a given extensions, and for servers that don't. We haven't given much thought to minimising the duplicated code paths that result, or do it cleanly.

This is really the nut of it, I think.
Servers will implement an extension if (1) it's so easy that they
might as well, or (2) they perceive a demand for it (from clients or
from customers -- the latter is sometimes just a box they have to
tick... yes, we support that).

or, pedantically, (3) they need the functionality and providing an IMAP interface is essentially cost-free.

Clients will implement an extension if (1) it really saves them a lot of programming work, (2) it really saves a lot of performance, (3) it provides a feature that they can't get without it, or (4) they perceive a demand for it (see above).

Your point 3 shows that (1) is basically not possible the way extensions are implemented in IMAP.

I think you're right, at least for all the relevant extensions I can think of now.

Do me a favour. Repost that list at each WGLC.

...

(2) mostly coves things like searching, sorting, and threading on the server, and a few things that save a lot of bandwidth or round trips for situations with slow connections or ones with high latency.

(3) mostly covers IDLE. Pretty much anything else can be done another way.

A couple of hours ago someone sent me mail saying essentially «blah issues 350 SELECTs and 350 SEARCHes and it's unpleasantly slow». I think the sender might just possibly consider multimailbox search to fit group 3 ;)

INTHREAD searches are a bit like that too. With that you can add a checkbox in the search dialog:

   [ ] return entires conversations

That's a pure added feature. It's also possible to use INTHREAD differently in clients (e.g. send 350 THREAD commands in addition to the 350 SELECTs above), of course.

There was a small effort started to trim things from IMAP that might be better done in other ways (like folders) and to fold in the "important" extensions to a new base. The effort was called "IMAP5", and it seems to have died down.

Yes. I though that was a little too... shall we say, the likelihood of highly unpleasant discussions seemed high and the advantage for me small.

Arnt