4 ms·
I wonder why XMPP is not more popular. It’s like people forgot that it has e2ee, and that the protocol is flexible enough for people to iterate quickly with, or
by hosh 4y ago
I wonder why XMPP is not more popular. It’s like people forgot that it has e2ee, and that the protocol is flexible enough for people to iterate quickly with, or how there’s a well laid out path to get extensions into the standard, and there are already robust, battle-tested, and scalable implementations of both clients and servers in multiple languages. Instead we end up trying to reinvent an ecosystem with Matrix?
- tcfhgj 4y agoTo get federation up to speed and make it more attractive for the masses
- hosh 4y agoThey could have done that by making more streamlined XMPP clients or improving release engineering for servers, or creating new logos to rally around, or solving the spam problem or pushing the idea of “Jabber home servers”, or provide services to aggregate RSS, or even making a completey open-source and open standard “skin” for a Slack experience, or protoyping a Websocket replacement for BOSH, or write Javascript XMPP libraries that let devs hack on the front end. But they did not do any of that. It’s as if the people involved with Matrix don’t really know what is available for XMPP, or have studied its history to see what is in store for their own efforts. I have a friend that was seriously trying to create a service backed by Matrix. He saw it as a way to bring e2ee to more people. Yet recently, when I revisited XMPP and discussed it with him, the more I dig into XMPP, the more I’m scratching my head — why didn’t we just start with XMPP?
- Arathorn 4y agoSpeaking as project lead for Matrix: Matrix is not an attempt to reinvent XMPP, plus we had extensive XMPP experience before creating Matrix (running 10M+ user ejabberd deployments; writing XMPP clients based on Smack, XMPP.Framework and Strophe.js; writing our own ejabberd modules for things like push notifications and persistent chat history, etc). Instead, Matrix is an entirely different architecture with different tradeoffs which you may or may not agree with. The main differentiators are: * It's a protocol for replicating conversation history; not for passing messages. * You get eventually consistent conversation history, as well as decentralised key-value store for metadata about the room. * Rooms are entirely decentralised over the participating servers; there are no single points of failure/control in a room. * It automatically heals after network partitions * It's a single monolithic spec * E2EE is on by default. If anything, Matrix is more like NNTP than XMPP. Now, you're welcome to dislike Matrix and build on XMPP (or SMTP or NNTP or SIP or MSRP or IRC or whatever other messaging protocol floats your boat) instead, but it's completely and utterly wrong to claim that Matrix is just a reinvention of XMPP by people who don't understand XMPP, or a marketing gimmick.
- hosh 4y agoThank you for explaining this. My claims about the reinvention were incorrect. I didn't think about the replicated conversation history and did not know about the decentralized rooms (though looking back, I can see what you mean by that if XMPP rooms are tied to a JID). Those kind of properties seem to work better for some ideas of mine's, though there are others that XMPP still seem to be better for other ideas.
- zaik 4y agoIf you visit matrix.org under 'Imagine a world...' you're describing exactly what XMPP is already doing.
- tcfhgj 4y agoTrying
- aaaaaaaaaaab 4y agoYeah, but XMPP is using a horrible and inefficient XML encoding. These days we prefer horrible and inefficient JSON encodings, hence the need for Matrix.
- zaik 4y agoI don't care that it's XML, but I do care that I can't send encrypted messages or make A/V calls to Matrix users simply because they choose to reinvent the existing standard. Standardization is much more important than which encoding is popular right now. But still, XML is easily compressed, parsers are much faster than required for IM and XMPP servers and clients are much more memory and CPU efficient, XML or not.
- hosh 4y agoAnd it gets stranger. I looked into it more and found design goals stating that Matrix was originally designed as a way to link existing messaging systems like XMPP and Slack together. Yet, people remember it as its own thing, and that thing is a subset of what XMPP already offers. When I looked into what it would take do commercial home servers, I found immature implementations that fall over while ejabberd has been battle tested on 2 million concurrent users on a single instance. Best I can tell is that Matrix has better marketing. While Google is scaling back in XMPP for gtalk because of spam and lack of participation from other companies, Matrix is seizing mindshare as being newer and “better” and shinier. (And if they get big enough, it will also suffer from spam …)
- hosh 4y agoThe Matrix project lead posted here (https://news.ycombinator.com/item?id=32252836 https://news.ycombinator.com/item?id=32252836) and addressed the things I am saying in this comment.
- hosh 4y agoThere is a JSON XEP. I noticed that XML allows for pointing to custom schemas (vis semantic web) and feature discovery. It is what allows developers to iterate on extensions without breaking compatibility As far as efficieny, XMPP powers some very large deployments: Apple Push Notifications, Google GTalk, even WhatsApp is a modified XMPP.