On 13 February 2017 at 18:48, Ted Lemon <mellon@xxxxxxxxx> wrote: > On Feb 13, 2017, at 12:17 PM, Dave Cridland <dave@xxxxxxxxxxxx> wrote: > > If JMAP is to supplant IMAP - and I think that's a worthy goal even if > its likelihood remains a matter for debate - then JMAP has to support > the same model. > > The model of IMAP is that: > > * Each message resides in a single mailbox, > * Each message has a set of independent flags, > * Each message is immutable. > > > This would be unfortunate. The "mailbox" paradigm really doesn't work > well—as someone mentioned earlier in this thread, it makes synchronization > needlessly slow and painful, and it also restricts the end user's ability to > tag messages with more than one meaning. > I'm not claiming it's a good model, or even (see John's messages) that this precludes any other model being made to fit. But I *am* asserting this is the model around which IMAP was designed. In fact, I could go further and suggest that at least some portions of the IMAP design assume that a mailbox is embodied by a single file, but workarounds for that issue have been long-implemented in the community. And other models are possible to expose with greater or lesser degrees of fidelity. When gmail, for example, exposes its mailstore over IMAP, it does so by playing fast and loose (and often loose) with the IMAP model. So messages are visible in multiple mailboxes, but there's no method exposed within IMAP that allows a client to understand that - to the client, they're distinct messages with the same content. Flags (or labels, which are exposed as mailbox names) change on all the copies in step, but the copies remain copies, from an IMAP perspective. Within JMAP, the semantics available are a proper superset of IMAP, so while the IMAP model can be exposed, so can a more gmail-like concept wherein the same message can appear in multiple mailboxes, for example. This means, as a casual observation, that the JMAP model (and therefore protocol) can be used to expose nearly every mailstore available. Curiously, this was the driver behind some of IMAP's design choices at the time. I'd recommend, if you're interested in the differences between the JMAP and IMAP models, to go look at the https://jmap.io site, which explains them very thoroughly. I'd note in passing that I was deeply skeptical of JMAP initially, and I've been persuaded by solid technical argument as well as market pressures. I'd be curious about concrete issues rather than hypothetical issues. Dave.