AIUI (from talking to people who had to implement XMPP), the problem isn't that "XMPP is XML", the problem is that XMPP is XML done badly. An XMPP connection is essentially a giant XML document that's never closed, which most XML libraries tend to handle very poorly, so you often end up writing your own XML library to handle XMPP. With all of the pain that entails.
Yup. You can write xmpp parsers with thin wrappers around a push based sax parser. It is not hard, people are just not familiar with sax.
Sure, sax parsers have their limitations, but there are sax parsers that avoid the callback trouble by doing a tree-style fold over the XML structure instead of the linear fold over the XML stream. Not for the server, since it is not super efficient, but writing a client like that is easy peasy.
I found XMPP an absolute delight to work with and built all kinds of command-and-control messaging utils with it that allowed me the flexibility to use it as a chat service and RPC broker all at the same time, with bots as APIs. It was nuts but brilliant. Bring it back, I say.
Coincidentally I just got an XMPP server going and have a bunch of people happily chatting on it. Yeah it has its issues, but it's an open, well-defined protocol evolved over a long period of time. It won't disappear if its singular maintainer disappears (referring to both Signal and Matrix here).
yes and XMPP is actually a messaging protocol. Matrix is an eventually consistent database with a crappy messaging app implemented on top, and because of the insane architecture they are justifying decisions like message ordering that is non-deterministic[0] -- for multi user chat!
What could possibly go wrong if users in a multi user chat see messages in different orders? This decision is a perfect example of how smart systems engineers can be so completely divorced from the real problem (human communication) that they make completely asinine choices justified by implementation details no user cares about.
Matrix needs to die so it can stop sucking the air out of this space. The funding problems are also completely predictable but that's an opinion for another time.
Even the E2EE implementation is garbage. To this day fifty percent of the conversation in every E2EE group chat I'm in is "Hey XYZ I can't see your messages because they fail to decrypt" because they still have bugs in how clients distribute their keys to other clients. Imagine the state of a chat platform literally failing at chat.
Or look at how until a few months ago, the media store of every homeserver served media on the internet without any authentication. Someone just had to post CP in a popular room and they'd get hundreds of servers rehosting it for free. (Recently they finally added the ability to require authentication for the media store, although they didn't add support for it to their web client, only their new Android one.)
> (Recently they finally added the ability to require authentication for the media store, although they didn't add support for it to their web client, only their new Android one.)
Sure, Element syncs much faster than other clients (FluffyChat is unusable for Instant Messaging) but leaving the browser tab open still thrashes one CPU core.
These shortcomings bug me like hell, too. I tried to overcome these by building https://fedi.buzz but the Fediverse community is quite split over its usefulness or it being a threat to their privacy.
This will start a little off topic but I will get back to the main point.
I feel like there's a group of users who are very against anything that might bring MORE users into their service of choice. So for mastodon, it's things like fedibuzz, and recently on Lemmy (at least on android) it's the Sync App coming out.
The Lemmy situation was a very polished very good former reddit app, which is now a Lemmy app, seems to have upset a lot of people because its "Not Open Source". Which I can understand, but I get the feeling the pushback is basically the fear that MORE users will come to Lemmy now that the experience is nicer.
The third thing is that the more I use bluesky, and the more I see these same kinds of infighting or issues come up in Masto/Lemmy .. the more I realise that perhaps BSKY is just the better longterm choice for me.
Now back to the main point.
I kind of WANT some way to discover new users, or topics, or anything discovery related, and having your own Masto instance just seems to nerf those things. I'm happy that fedibuzz exists, and I'm happy that there's a kind of trending posts/news in Masto. But It needs to be better if it wants to survive. The average user will not put the kinds of effort in to FIND new people that exist elsewhere.
So users join larger instances, because theres discovery features there. But then the Local feed is just not great. The other side of this is single user instances, and those aren't great either.