Hacker News new | ask | show | jobs
by zenethian 490 days ago
I still don't understand why Matrix exists. It feels like a solution looking for a problem to solve. I must be missing something? Can someone explain the gap it closes?
5 comments

From my perspective, the biggest differentiator is that Matrix allows users to remove the centralized coordinator from their chat provider. That is, I can run my own Matrix server, where my users can chat with each other, without any interaction with Element.io or other operator. All other major providers (Signal, Telegram, WhatsApp, etc) all rely on a single operator to coordinate the system.

Of course, it's still useful to be able to chat with people without accounts on your private server, which is why the federation is still important. You can link up with broader networks, but you're not reliant on them.

Why this might matter is because if e.g. the UK government compels WhatsApp to implement a backdoor, as an end user I would never know. But, as someone operating entirely outside of the UK, they have no standing to compel me as a private person to implement a backdoor in my own deployment (or at the worst, at least I would know if it occurred).

Think of it as the chat analog to running your own mail server. Does everyone need to run your own mailserver? No. But if we'd started with a siloed system in email, we'd probably still be sending emails only to people with our same TLDs to this day.

We've had this with XMPP already.
Oh, but people don't like XML.

XML means xmpp is awful apparently. I feel pretty alone in having a bad experience with matrix, but a good one with xmpp+omemo.

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.
SAX parsers should have no issue with that, or? So is the pain that you're forced to use SAX parsing or roll your own?

At least the SAX parsers I've used allowed to get partial "subnode DOMs", which makes it quite easy to use in practice.

That said I've only parsed ~1GB XML files (no embedded binaries), not sure if that counts as large enough.

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).
whoa I totally did not get the memo on omemo this sounds great
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.

0 https://artificialworlds.net/blog/2024/12/04/message-order-i...

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.)

This is not true. If it were true, it would imply you can't view any newly uploaded media from the web client. Here is the web implementation of MSC3916: https://github.com/element-hq/element-web/pull/27326

Yeah, similar but different path for bluesky, sometimes we don't really need a prefect technical solution, just something works for average user.

https://news.ycombinator.com/item?id=43105028

Matrix Con 2024 had a public sector track where various organisations such as NATO, the French Government and the German Healthcare industry outlined the problems they are solving with Matrix.

Though in short, as a large public institution, being able to self-host a secure and decentralised communications network is highly preferable to needing to rely on a centralised service administered by a company in a foreign jurisdiction.

https://www.youtube.com/playlist?list=PLl5dnxRMP1hX5u7TZ1FNa...

It seems to be the only currently existing open, e2e encrypted, chat application that reasonably supports both multi-device and large group chats. Essentially Slack or Discord without the centralization.

The nearest competitor is Signal but that's neither really open (it's source-available, maybe technically open source but it's clear that you aren't supposed to try to interop with the official network with non-offical clients) nor does it really seem to be made to support large group chats and a desktop-first experience.

The property of federated control over the network, which is what the rest of the internet (including the protocol you're using right now, and all the proprietary chat apps) depend on.
I don't understand why my question got reported. I didn't say that Matrix is bad or shouldn't be funded. Even if it's just to compete with other protocols, that alone would make it worth funding. I just can't find enough information to actually understand it's angle. Thanks for those who replied to help explain it. :)
It didn't get reported - it just got downvoted. Downvotes are often unfathomable.

The best way to respond is to look over your comment to see if it broke the site guidelines in any way (https://news.ycombinator.com/newsguidelines.html). If you notice something, you can correct it in future comments; if you don't, chalk it up to the internet being weird; and either way, don't sweat the downvotes.

Also, if the downvote was weird, someone else will usually come along and add a corrective upvote (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...).

Thanks for clarifying and the resources!