5 ms·
XMPP lost because the spec is overcomplicated and hard to implement. As a result, good clients never materialized and innovation was really hard to do. Everyth
by arcbyte 2y ago
XMPP lost because the spec is overcomplicated and hard to implement. As a result, good clients never materialized and innovation was really hard to do.
Everything in this article is an offshoot of the overcomplicated spec.
- pixelatedindex 2y agoIs there a “modern” equivalent to XMPP? How does it compare to the matrix protocol?
- singpolyma3 2y agoThe modern equivalent to XMPP is XMPP. Like every other healthy and alive protocol it evolves over time to meet new needs.
- xg15 2y agoIs it actually "alive" still?
- MattJ100 2y agoYes, definitely! Latest edition of the monthly newsletter highlighting various stuff in the community and ecosystem: https://xmpp.org/2024/11/the-xmpp-newsletter-october-2024/ https://xmpp.org/2024/11/the-xmpp-newsletter-october-2024/
- DennisP 2y agoGiven the context above, does that mean the modern version is no longer "overcomplicated and hard to implement?"
- SamWhited 2y agoI don't know that it was ever "over complicated and hard to implement" (see my response to the thing you're quoting above, I think), at least, not any more so than any protocol, but I'm still not really sure what the specific complaints are when people mention this, maybe you could elaborate on what's hard to implement? Most people just grab an XMPP library and go, you don't normally have to implement XMPP itself to make a client (just like you don't implement HTTP when you want to make a request, you go snag a library that does this for you).
- Lammy 2y agoIf one tried to design a new protocol and implement All The Things then it would end up just as complicated, except now their user base would be split. XMPP of a decade ago didn't support lots of features that modern users will expect if they come over from other messaging systems.
- mindcrime 2y ago> Is there a “modern” equivalent to XMPP? Yes, it's called "XMPP".
- rw_grim 2y agomore specifically https://docs.modernxmpp.org/ https://docs.modernxmpp.org/
- SamWhited 2y agoMatrix and XMPP operate in very different ways Matrix is a graph database synchronization protocol, whereas XMPP is event based. Let's use group chats as an example: with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server. This means it's very resource intensive to scale, but very reliable since you pretty much always have chat history available and if one server goes offline you can keep the group chat alive on one of the other servers (let's ignore netsplit style concerns for now, it's not really relevant to the high-level nature of the question). XMPP on the other hand is event based, this makes it much less resource intensive, but means that if the server you're trying to communicate goes down you don't have access to that chat room anymore (some servers mitigate this by using traditional high-availability techniques like clustering, but that's not really a protocol thing, I'm sure some Matrix servers also do clustering as part of their scaling strategy). As far as features specifically related to IM, both support most of the same things, it's just a question of whether clients have implemented them or not in either protocol.
- dingnuts 2y agoThe real difference between XMPP and Matrix is that I can read the discussions about XMPP on this site without the CEO of the company that pretends not to own it, but does de facto own it through some kind of wannabe Sam Altman "it's actually a non profit that happens to be controlled by my for profit company" move, coming into the comments to denigrate anyone with an ounce of criticism for his product
- SamWhited 2y ago(oh yah, FWIW he's done this to me too; shows up and accuses me of being biased against matrix and not disclosing my affiliation with XMPP stuff… meanwhile he controls a company and gets paid by them, I just chose to work on XMPP open source stuff instead of Matrix stuff and don't get paid for it)
- tcfhgj 2y agoNot being paid doesn't mean less biased. To the contrary: I expect a high bias since you choose to spend lots of time on it despite not being paid for it
- ensignavenger 2y agoBased on my research, but no deep implementation experience with either: XMPP continues to advance, so could be considered modern if you use the latest versions. Matrix is more of an event sync protocol, consisting of a server to server sync protocol and a client to server protocol (sort of like email). It is mostly used for chat, but appears to be more flexible. Matrix uses JSON and HTTP. XMPP is focused on chatmessages. In many ways XMPP and Matrix are similar. XMPP is based on XML and originally used TCP as the transport protocol, but has been extended to use HTTP now as well. EDIT: I think a clearer way to describe the basic difference is that Matrix syncs Matrix Events across servers, whereas XMPP facilitates exchanging messages with clients. Most folks use the protocols to exchange chat messages. It is the way this is accomplished by the corresponding servers that differs significantly.
- ptman 2y agoMatrix is described as a distrubuted graph database. Chat is just the most common use case, but there are others.
- righthand 2y agoAh yes, because developing tech is about winning marker-share only. That’s exactly why XMPP was developed in the first place.
- shadowgovt 2y agoMarket share matters for a communication system though. Why bother to run a server or install a client if there's nobody to talk to?
- righthand 2y agoIt matters in the “I stumbled into this public chat room” sense. It doesn’t matter in the “we need a private comms channel” sense. At the end of the day, the point is that XMPP was never trying to “win” against IRC, ICQ, AIM, Matrix, et al.
- rakoo 2y agoMarket share only matters if there's a market, ie concurrent proposals. In an open world, concurrent proposals make no sense: let all applications talk with any other, let all protocols take inspiration from each other to build the best infrastructure. There's nobody to talk to because companies explicitly make it so, not because a protocol is better than another
- radarsat1 2y agoNot sure I buy that explanation. More likely is thst there's too little business advantage to being compatible with others and too much business advantage to having people inside your own ecosystem. Simple as that. There's just very little motivation for compatibility between these systems unless you are open source.
- xg15 2y agoThis. Thinking that the complexity of a spec is the primary obstacle to adoption seems logical at first. But it can't be true if you consider that the specs of all kinds of "foundational technologies" we use daily - HTML/CSS/JS/the DOM, IMAP, USB, IP, etc - are not just complicated but often downright messy, full of overengeneered, inconsistent or contradictory features. I'd argue that the "beauty" or "ugliness" of a spec can make the life of the particular programmer who has to implement it slightly easier or harder - but it has very little effect on whether it is implemented or not. That's a product decision which follows completely different considerations.
- CharlieDigital 2y agoAgreed. Back in the 2011 timeline, I printed and read the spec front-to-back to implement what was effectively an "early Microsoft Teams" (a real-time, chat-oriented client connected to SharePoint)[0] using XMPP. The spec is very easy to read, understand, and implement. I think on top of your points (and maybe adjacent or extended from that point) is that I think some entities like Google were probably seeking more wire efficiency over the XMPP protocol and possibly wanted to innovate/iterate faster. There was a wave of "real-time" collaborative apps at that time and I can appreciate the need for teams to innovate faster. [0] Short video: https://www.youtube.com/watch?v=WG_W0VxjzbM https://www.youtube.com/watch?v=WG_W0VxjzbM
- WD-42 2y agoThis 100%. It’s hard to serve ads to someone using your service through a text based irc client running 24/7 on a vps
- jauntywundrkind 2y agoMy frustration with "too complex" is high. Criticism in general often devolves to very broad heresay & un-backed opinions, but man, too complex is just one of the weakest by far at this. Few people have spent the time to get to know a protocol or system well enough to know what really was unnecessary or bad. The ability to crash out & then talk smack is high. Most haters haven't even earned that right! XMPP is pretty simple to get started with. Theres not that many extensions you "really should have". The extension model let them grow & adapt well over time, giving more weight to the underlying eXtensibility model. I tend to agree it was mainly a push for privatization & lack of interest in economic mutualism that lead to drift away from XMPP.
- SamWhited 2y agoI've done a lot of work on XMPP related projects and some specs, and I'm not sure that this is true. I mean, it's definitely complicated, that part is true, but of course it is, it's a protocol and it's not more complicated than other specs as far as I can see. Not to mention that, like the various clients for different platforms that this article mentions, one of the big benefits of XMPP over other protocols is that it has libraries for every major platform, so most developers will never need to implement the spec. TL;DR most people don't implement HTTP when they want to make a request, they add a dependency on whatever their languages HTTP library is. XMPP is the same.
- dogleash 2y agoThere are good clients. Whatsapp, Grindr, Kik, League of Legends, Fortnight, Eve Online. They have something in common though: not letting users communicate outside their own ecosystems.
- xorcist 2y agoCompared to what? Compared to IRC, yes, but it's not really comparable. The closest comparison is probably Matrix and that is a pretty complex protocol too.
- rw_grim 2y agoYou might be surprised how modern irc is nowadays... https://ircv3.net/ https://ircv3.net/
- rw_grim 2y agoYou should look at the matrix specs, include the new matrix 2 stuff... My point is, this argument is a bad one as it expects people to get the protocols right on the first try and that's never going to happen.