I used to run my own Prosody server for some years before switching out to Matrix and there was nothing "easy" and "modern" with XMPP. Sure, I could get the fancy features such as end-to-end encryption, push notifications and file sharing... with Conversation for Android. But I could never properly sync my messages and conversations with a PC client.
I'm glad I don't have to deal with XMPP anymore, I know that the HN crowd likes to dream with it but the reality is that it was a major pain.
It demonstrated that it can overcome major pain points though: Gajim (Desktop), Conversations (Android) and Monal (iOS) [edit to add: and conversejs on the web] cooperate quite well these days.
Matrix? Let's see how they overcome their first major paradigm shift (such as the introduction of mobile devices with spotty
ever-changing network environments, or E2E encryption both of which took a while for XMPP to handle gracefully)
E2E hasn't come gracefully to me yet, because my Pidgin still only has OTR support, and so does the one one of my primary Jabber contacts uses, except Conversations has now dropped it in favor of going all-OMEMO. My current answer is to ignore the mobile case like I did most of the time before, but that's not a good answer.
I guess maybe I need to switch to Gajim, but this sure isn't frictionless, mostly due to the lag-induced fragmentation.
Pidgin essentially stopped supporting new XMPP features a decade ago. This includes multi-device support and many new convenience features (delivery receipts, file uploads). There are some plugins that might be able to compensate, but at significant effort.
OTR wasn't made for the multi device use case at all (and even OTRv4 is explicitly single-device). If you happen to log in with multiple clients, it will most probably confuse the other side's OTR plugin
I know you mean well, and I'm glad this exists and that you reminded me of it (I now remember having seen it before), but this isn't enough to invalidate my point. The installation instructions are… barely okay. AUR… okay, I guess. What would people on Debian-based platforms, like the very popular Ubuntu, do? Compile from source?
Let's see what the README says: “I know this is a bit clunky, but using the command interface for interactions makes the plugin usable in clients that do not have a GUI.”
So now I get to explain this to the other people I was using Pidgin+OTR with too, right? (Also I get to have to remember what the commands are, because I won't be using them frequently.)
I mean, this can also be phrased as one of the disadvantages of being part of the earlier installed base, but on a wider scale, buildup of legacy resistance is one of the things that you wind up having to overcome if you want to introduce new features that aren't strictly optional—which is kind of why we still don't really have secure email that doesn't take massive cognitive overhead in “remembering which things people are using” and massive social overhead in negotiating about it and being prepared for all sorts of responses.
(Added:) And to make sure I'm not accidentally taking this into the weeds, the incompatibility was introduced AFAIK when Conversations dropped OTR. That means any Pidgin clusters suddenly take on a big UI and polish downgrade for their E2E if they want to stay interoperable. I'm not meaning to criticize this specific plugin so much as to point out that there wasn't enough overall coordination between seemingly-major clients to stop this from happening.
The first real issues for XMPP came up about a decade after it was formalized. Matrix is too young to demonstrate how it will cope with unforeseen issues. E2E working? Mobile support? No surprise, both were must-have features when matrix started.
I have no idea what Matrix will be struggling with in a couple years, but that's exactly the point: nobody does.
Surely there will be a new client then whose developers, users and evangelists will point out how it's so much more seamless than Matrix, and don't we just let Matrix die and go for that newfangled thingy, but I'm not really eager to change my mode of communication every 10 years just because it's driven by the CADT model (https://www.jwz.org/doc/cadt.html)
I take your point that we can't know if Matrix will stand the test of time because "future-proofing" is a lie, but we also need to acknowledge that XMPP was born at a time when instant messaging was in it's infancy. It came from the primordial sludge of BBS and IRC, and made something incrementally more usable by less technical crowds.
Matrix has had the benefit of years of mainstream IM adoption (thanks to the likes of XMPP!) to get an idea of what was needed in a federated IM protocol.
I think your CADT point is very dismissive. Matrix isn't just some rebranding of something old, it fixes legitimate issues... XMPP is just not usable with my non-technical friend group. They won't use it, I've tried. Matrix, on the other hand is friendly enough.
I can't tell you what Matrix will struggle with in a couple of years, but I'll tell you it'll be a subset of the things XMPP is struggling with at the moment.
I used to run my own Prosody server for some years before switching out to Matrix and there was nothing "easy" and "modern" with XMPP. Sure, I could get the fancy features such as end-to-end encryption, push notifications and file sharing... with Conversation for Android. But I could never properly sync my messages and conversations with a PC client.
I'm glad I don't have to deal with XMPP anymore, I know that the HN crowd likes to dream with it but the reality is that it was a major pain.