One big missing disadvantage: XMPP may mean very different things. If you find something described as "XMPP client" in your package repository or the appstore, there is no guarantees that it will support basic things like multi-device message sync or offline messages.
That's not really an XMPP thing. There are many "Matrix clients" that don't support everything that Element supports. Some of the things Element supports aren't even in the Matrix specification yet.
This is just a fact of life for open-source open ecosystems.
For Matrix, "multi-client sync" and "offline messages" are core parts of the matrix protocol -- so it is impossible to find a client or a server which will drop messages on intermittent connections, or which will not record message to history.
Their compatibility chart ( https://matrix.org/clients-matrix/ ) shows that missing features are things like "rich text editing" or "typing notifications" -- whatever, I can live without them.
On the other hand, core XMPP is designed to drop messages if something happens (like if recipient is offline). You need to have a whole bunch of XEPs implemented to prevent message losses.
This is exactly why I recommend avoiding XMPP where possible -- messengers have one job, to reliably get message from point A to point B. If it is possible to end up with the situation of unreliable messages, maybe just don't use that protocol, use any of the many other alternatives.
5 comments
[ 2.7 ms ] story [ 19.9 ms ] threadThis is just a fact of life for open-source open ecosystems.
Their compatibility chart ( https://matrix.org/clients-matrix/ ) shows that missing features are things like "rich text editing" or "typing notifications" -- whatever, I can live without them.
On the other hand, core XMPP is designed to drop messages if something happens (like if recipient is offline). You need to have a whole bunch of XEPs implemented to prevent message losses.
This is exactly why I recommend avoiding XMPP where possible -- messengers have one job, to reliably get message from point A to point B. If it is possible to end up with the situation of unreliable messages, maybe just don't use that protocol, use any of the many other alternatives.
So at this point, what does it matter in reality?
XMPP has an annually-updated baseline for compliance: https://xmpp.org/extensions/xep-0443.html