If matrix actually does succeed and continue to change I think it will result in having only 1-2 server implementations and 1 client per platform. A hobby dev can't possibly keep up with all the features being implemented by a whole team working on the main client.
For example, Apple adds person to person payments in imessage and it suddenly just works for every single imessage user. If someone did that as a feature on top of matrix you now have a situation where some clients support it and some don't so the feature never really gets used as its too unreliable. Maybe over time the feature rolls out to more clients but there will always be some devs who think "No I don't like this feature, I won't ever add it"
I guess things are a little simpler here since it might be possible to implement new features without server changes as they may just work on top of the standard matrix spec.
It's just that you need a client and server that supports those features. Daniel Gultsch has written an Android client[1], that's as good as it can be. He also offers a maintained XMPP server [2] providing the full-featured counterpart. But if you want to self-host, ejabberd supports all the features as does Prosody. For iOS users, there's Monal which is slowly getting there.
Among other things, my server has message archiving configured for MUCs, but Conversations is the only client I've ever been able to get to sync that history locally. That's something I just don't ever have to worry about with Matrix. (Not that I don't have other complaints with Matrix.)
Also, Gajim has support for MAM and can sync everything locally. I believe Monal has it, too.
Yes, I've heard that Gajim and Monal support it. I'm running both of them right now; Gajim doesn't appear to be fetching history from the server for the MUC I'm looking at in either the chat or history windows, Monal seems to attempt to but shows a progress spinner indefinitely. Conversations successfully loads history from the server; I can scroll back to well before I got this phone so I know it's not just local.
1. Store and forward 2. e2e encryption 3. Messages received on multiple clients at the same time, with clients being able to reconnect and pick up the complete conversation history.
In theory, all possible.
In reality, none of the clients I tried supported the same combo of XMPP plugins and encryption methods.
Oh, and I need clients that work on MacOS, Windows, and Android.
I am using conversations legacy on Android right now because that works with how ejabberd is setup on my machine, and how ejabberd is setup works with the clients other people I want to talk to are using.
I gave up using XMPP on a laptop since I'd get encrypted messages with the wrong key sent to other devices except whichever one I'd used most recently to send a message with.
I never did manage to set sending images working at faster than ~2KB/s.
It is like I am back in 1996 and using AOL IM, but worse.
To have OMEMO working between multiple clients but the same user, make sure they’re all running and send a message from each client to your OMEMO contacts so they learn all your different keys and send answers encrypted for all of them.
In regards to Matrix. There’s only one reference client at the moment. But once other clients emerge and the protocol gets extended, they’ll probably have the same fate in that many 3rd party clients won’t support all features.
Conversations doesn't display when your friends are online or not, which is fine if they are almost always online but if they are offline a lot, then depending on the server configuration and the phase of the moon, messages sent while offline go missing (silently of course).
EDIT: I think the only setup I could whole-heartedly recommend non-technical friends is Conversations talking to Conversations with Prosody default-settings server(s).
It is interesting because Matrix has money thus full-time developers, marketing, exposure, and time to defend their work to the depth of the deepest reddit thread.
(The Element page on F-Droid reads "Element is able to do all this because it operates on Matrix - the standard for open, decentralised communication.", not presumptuous at all)
Yes, Matrix is a conversation history syncing protocol, and XMPP is a message-passing protocol. They genuinely are fundamentally different. It's a bit like the difference between SVG and Canvas. Sure, you can use both to draw pretty vector artwork. But one's an object graph, and the other's immediate mode.
In terms of Matrix having money: yup, it's true that folks have generously donated to Matrix over the years to keep the project afloat, and more recently Element has funnelled most of its VC funding into supporting Matrix. However, the whole "marketing, exposure and time to defend their work to the depth of the deepest reddit thread" trope is hilarious, given Matrix's marketing department is... me, the project lead? and I'm doing this in my spare time with my FOSS hat on. (technically there's benpa, our dev evangelist too, but he's ended up being hijacked by Element business this year).
Finally, "Matrix - the standard for open, decentralised communication" is like saying "Rugby - the game". It's not saying that Matrix is the one and only standard for open, decentralised communication any more than Rugby is the one and only game; it's disambiguating it from "Matrix - the mathematical construct".
Meanwhile, comically, xmpp.org declares itself "The universal messaging standard" and "XMPP is the open standard for messaging and presence".
¯\_(ツ)_/¯
It's like self-loathing teens reflexively making fun of an enthusiastic teacher. Except we're presumably all adults here.
At this point you've probably realized that it's still immensely more than what XMPP-the-protocol has ever done: a voice that is present on all fronts to talk about it and spread the word about our Savior :)
When you want to "get into" XMPP you have to choose between NN clients, and pick a proper provider among the YY that can give you an xmpp address. When you're starting with Matrix there's a server that is "right" for beginners, with a client that is the flagship so every standard feature can be expected to be there and work, there's a company that funds its development...
You might be the only person in Matrix's marketing departement, but I guess it works this way because the way the ecosystem is today, one person is enough !