The two protocols have entirely different designs and philosophies and do different things. It's like claiming that NNTP competes with SMTP because you can uses them both to hold conversations. Please can we both just get along? :)
In terms of matrix's usability: i'd say it's been very usable for the last 6 months or so - and given the size and activity visible to the matrix.org homeserver, others seem to concur.
I mean I rather have people use matrix than a closed system like WhatsApp or Signal. But I honestly don't see the point for developing a new protocol other than JSON over HTTP fits better into the zeitgeist and NIH syndrome.
I think the root of the contention here is that you don't seem to understand what Matrix does - this is probably my fault for failing to explain it better to you in person at FOSDEM. It is not a pointer to a stream of messages. The whole point is to store arbitrary data (e.g. room history and state) as a directed acyclic graph shared over all the participating servers. It's a big distributed datastructure with eventual consistency semantics which happens to be usable for chat. Or any other kind of real-time requirements.
If you wanted to compare it to a XEP, then FMUC would be a better comparison than MAM subscriptions. And yes, you're right that one could have built it on top of the XEP stack of standards, just like FMUC did. We could also have layered it on top of IRC. Or IMAP. Or NNTP. Or ZMQ. Or MSRP. Or Psyc etc.
Instead, we chose to layer on HTTP in order to keep it as simple as possible - we simply don't need most of the abstractions that XMPP provides. And we believe it's easier for a protocol to get traction if it has a single monolithic spec which defines feature compatibility profiles for interop than if it's a huge collection of optional extensions.
In the end, these are both subjective opinions, but I see no harm in there being two different philosophies out there for solving the problem of interoperable communication. Especially as it's not a competition, given both can 'win' by bridging together.
1. decentralising the conversation so no single entity owns or controls it: being a federated communication database rather than a messaging platform. 2. making bridging a first class citizen (hence the name Matrix; it's designed to matrix together other conversations) 3. providing a deliberately monolithic spec to try to avoid fragmentation and help us evolve it relatively rapidly.
Now, I have huge respect for you in showing that it's possible to build a good UX on top of XMPP. And we don't think XMPP is fundamentally flawed. But we wanted to try a completely different architecture and design and see if it flies. As per the earlier comment I see it very similar to NNTP and SMTP. They can be both used to power conversations, but architecturally they couldn't be more different, and the world is big enough for both.
Genuine question: any idea how big the public XMPP federation is in terms of active servers and active users? Would be interested to know how Matrix compares.
when someone using conversations writes to me, what i expect is that i get the message on my desktop, as well as on my mobile client. but conversations will ALWAYS ask the user where he wants to send the message, if on my phone or on my desktop client. this should not happen. it should just send it without the resource set, and let the xmpp server figure it out.
Must be a bug (or OTR requirement, as OTR doesn't work with multiple devices). XMPP clients shouldn't require sender to choose the recipient's resource, unless sender is explicit that they want to target a specific device.