Webmail was limited by HTTP, but not because HTTP is stateless; rather, it's because no mail server speaks HTTP, which means every webmail has to implement it's own IMAP proxy, and IMAP as a protocol is very, very bad if you don't want to sync emails to your local machine and thus keep your own copy of the whole mailbox state.
On the other hand, JMAP does allow you to get push notifications on changes, outside of the normal HTTP API.
> Webmail was limited by HTTP, but not because HTTP is stateless; rather, it's because no mail server speaks HTTP, which means every webmail has to implement it's own IMAP proxy
That doesn't explain why it is limited, only why it isn't interoperable. A traditional IMAP client also didn't speak TLS. That wasn't a reason to invent a replacement for IMAP, because you simply stack IMAP on top of TLS, and noone complains that "every TLS IMAP server has to implement its own TLS proxy", let alone gets the idea that you should invent a replacement for IMAP in order to be able to use it over TLS.
> and IMAP as a protocol is very, very bad if you don't want to sync emails to your local machine and thus keep your own copy of the whole mailbox state.
Because? And mind you, we are looking for a reason that would justify (a) inventing a whole new protocol instead of adding a few small extensions and (b) specifically inventing a pull-based protocol that uses HTTP as the basis.
> On the other hand, JMAP does allow you to get push notifications on changes, outside of the normal HTTP API.
In other words: Because JMAP doesn't fit the needs of the application, because it uses a pull-based protocol, and in contrast to IMAP which has push built-in already (well, it's an extension to the original protocol, but one that is widely supported and a relatively simple change to the protocol), they support tacking on a workaround for the resulting problems? And that is supposed to be an argument for the protocol, or what?
You obviously disagree, but JMAP made exactly the right choice: A simple, pull based protocol, with a side-channel for notifications. It's not clear why anyone would want a complex websockets-based monstrosity when the simple approach solves the problem perfectly.
I am not at all convinced that JMAP will succeed, I think it's along shot, but it's failure will not be because of the choice of HTTP.
What exactly is the point of simply ignoring what I wrote and making unsubstantiated assertions that contradict what I wrote?
First, it's based on HTTP, so it's obviously not simple. Then, it obviously doesn't solve the problem perfectly if it cannot do the job without an additional side channel (which still doesn't solve the problem perfectly as the side channel obviously is slower and reduces reliability). And what is possibly the monstrosity with websockets, if not the fact that it is kinda-sorta using HTTP for something it wasn't built for ... which you think is best avoided by using HTTP for something it wasn't built for?
And no, I certainly don't want to use websockets, just as I don't want to use any of the other monstrosities that make up "email in a browser". But the great thing about sensible protocols for the purpose, which could work over websockets, is that you can simply drop all that crap and run them over TCP (with TLS in between, preferably).
On the other hand, JMAP does allow you to get push notifications on changes, outside of the normal HTTP API.