Riot, and Matrix in general, were designed to beat that: It's designed to inter-operate with existing chat protocols as much as possible, so that this isn't a problem, but also to provide things that those protocols can't.
Absolutely; as much as the Matrix people claim they're not doing that by "interoperating with other protocols" they don't seem to understand that it's exactly what they're doing. The existing standards (XMPP) already interop in exactly the same way (gateways/transports), so making another protocol instead of improving the gateway / transport story on an existing one is just silly.
Matrix is group-chat-first ("direct messages", or one-to-one messages, are actually just implemented as an unnamed group with two people in it), while XMPP's group chat support is in a rather unwieldy extension (as with a lot of XMPP's functionality).
Matrix also builds on existing standards with decent libraries available for things like voice/video chat, and is web- and mobile-first. There's integration of arbitrary client-defined "push services" built into the protocol, which Riot uses to push events from a Matrix server through Google and Apple's cloud device messaging services to save battery, all without the Matrix server having to know the details of how those push systems work. Also, I can do web-based single sign-on through my CAS server, and all the variations of Riot handle it perfectly.
Mmm... I wouldn't quite call it silly. The protocol does support better stuff than XMPP. We're talking about single view notifications across multiple clients and other goodies sometimes implemented by XMPP plugins. And quite frankly from what I've heard the plugins are a pain. I do think a fresh break is what's needed.
I don't disagree that XMPP has problems, like anything, but having multiple federated protocols defeats part of the purpose of federation. Also, as far as I can tell, Matrix just carried over most of the same problems because they don't have 20 years of fixing edge cases and making sure things are scalable and easy. I'm not sure why plugins would be a pain; I'm sure making recommendations could be done better, but otherwise they're no more difficult to implement than the same things in the Matrix core spec. A fresh break is most cretainly not what's needed; we just need people to volunteer their time and effort and help make things better, not make up new protocols to compete with the old ones and make the messaging ecosystem more fragmented than it already is.
I get the 'different philosophy' part, but I don't understand why their list of 'problems with XMPP' includes things like 'second-class citizen', since Matrix itself is a second-class citizen compared to XMPP.
They might as well list 'Can't talk via Skype' as a problem with XMPP, since it's just as true and Matrix is just as incapable of solving it.
As for 'requires plugins/extensions', if you think that's a problem then there's an easy fix: define a new protocol as "XMPP + the following extensions...". That requires some effort, e.g. to get servers and clients to support this new protocol, but unlike a "clean break" it wouldn't require much technical or social work.
I especially enjoyed the "no open source implementation exists" reasoning; no open source implementation of Matrix used to exist, but that didn't stop the developers ;)
As parent said, XMPP covers all of these cases with plugins. The FAQ you link says, over and over again, "the base setup doesn't cover these features, but plugins do," and doesn't explain away writing improved plugins or XMPP spec extensions. All I see is "buttt it'ss haaaaarrdddd".
> Rather than fighting over which open interoperable communication standard works the best, we should just collaborate and bridge everything together.
The XEP which allows all clients that a user has open to actually receive messages has not even been accepted yet. Last Call was supposed to finish on 2015-08-28 - 11 years after the advent of XMPP - and the document hasn't been updated since. Many clients don't support it, including Pidgin, and at least the Prosody.IM server needs a "community module" to enable support for it.
XMPP is a pretty terrible user experience, tbh, and its developer experience isn't a whole lot better.
Matrix actually has a good point about the spec extensions though: if your spec is that minimal, nobody is going to be able to agree on what feature set to support. As a Schemer, I can attest to that.
>Absolutely dripping with irony.
As is your comment. Matrix made a different set of design tradeoffs, and is a legitimate protocol in its own right. And yet every time it pops up on HN, people complain about how we should all just use XMPP.
Screw that. XMPP isn't perfect, and there is room for a chat protocol that solves these problems in a different way.
Leveraging http for file transfer - via, say, web apps - avoids "civilian" (non-techie) users from having to install yet another tool (like ftp client)...though I do agree that browsers shouldn't replace every other tool under the sun. ;-)
As someone who appreciates the design goals of both but is a user of neither Matrix nor XMPP for practical reasons (I don't know anyone who is), seeing users of both of these small networks sighing at each other leaves me nonplussed.
An end-to-end solution for interop between the two ought to be insanely high on the priority list. By this I mean it should be braindead obvious if I want to try one of them how to chat with a user of the other. Obviously this is bigger than just the protocol but so what, it's the problem that needs to be solved.
I can't even imagine how working together would not be top of everyone's mind in this space, since chat is all about network effects. The incentives to cooperate are huge.