When you connect a new device to a 'smart' tv, you must pay homage to the manufacturer with a ritualistic dance. Plugging and unplugging the device. Turning them on and off in the correct sequence like entering a konami code.
Every time you want to switch devices, the tv must scan for them. And god forbid you lose power, or unplug something. You are granted the delight experience of doing it all over again.
I have fond memories of the days of just plugging something in, and pressing the input button. Instant gratification. It was a simpler time.
They are both using the exact same double ratchet Signal protocol for end-to-end encryption down to the same problems of other clients keys for haven’t used in a while due to ‘inactivity’.
The only difference is that XMPP is an extensible protocol where you very much can drop encryption all together if that doesn’t suit your use case for the protocol (such as not chat). However, all modern servers folks actually use for chat comminacations follow with the Conversations compliance suite & OMEMO support is expected in clients—meaning everyone using XMPP for standard coms in 2024 have a good encryption story.
Matrix’s extensibilty is limited due to the choice of JSON over XML relying on adhoc, stringly-typed message names. Due adopting an eventual consistency model, Matrix server can’t be run on a potato in your bedroom & most folks are relying on public servers rather than the decentralized, federated self-hosted tendency of the XMPP network in practice not just theory. Most users are on Matrix.org or Matrix.org-provided servers syncing all metadata back to a single entity started with funds from Israeli intelligence. If you ask me which one has a better story for freedom, it’s going to be the one that is lightweight enough & designed to be individually-hosted over the defacto centralized option with resource-intensive clients.
Like Matrix the clients aren’t all equivalent without feature parity (& no concept of the flagship or implementation client). For desktop, Gajim has the most power user features but issues rendering in smaller windows like a tiling split (& being written in Python has other issues). Dino is feature-complete & calls tend to always work—great if not connected to tons of chats. Profanity is the best TUI which is very fast but usability is really good for some things & really bad for others (like accepting no OMEMO keys). I use all three depending on the environment & task. Android it is a lot clearer where Cheogram takes the cake for me being a Conversations fork but with OLED black support as well as webxdc. For the web, Movim has the best UX/feature set & can be used anywhere a browser can with PWA support. You can also just check to see what provide OMEMO: https://omemo.top/.
ActivityPub is a JSON-based protocol for seems primarily built for social networks, with the DMing experience normally not being secure or particular fast. XMPP is largely for building networks for passing messages & client presence—which can be extended to support PubSub like MQTT. It isn’t normally built for social networks but Movim & Libervia have extended XMPP to be a social network.
Hmm. Looks like Libervia is working on bridging XMPP and ActivityPub, as well.
I was just thinking, I don't know ins and outs of it all, but ActivityPub is often compared to Matrix, so if XMPP is a better version of Matrix does that mean ActivityPub could be improved upon?
Don’t quote me on it, but I don’t believe Matrix could be extended to be a social media platform. It’s just more limited in its capabilities as JSON is not a very extensible format.
XML is meant for you to create & embed entire namespaced specification schemas that don’t have very strict limitations. JSON schemas are more ad-hoc than a built in since it isn’t a part of the spec or namespaced & IIRC Matrix uses events all stringly-typed by a message name instead of the XMPP approach which assumes already the message body can/will contain arbitrary data according to a XEP or other spec. I’m non as knowledgeable on the subject as I would like to be tho…