Ask HN: What's the Deal with XMPP

2 points by ekjhgkejhgk ↗ HN
I just recently discovered XMPP, and why isn't it more widely used?

Last time I went exploring into free messaging alternatives I looked into Matrix. I looked into Matrix again, and it's still terrribly slow. XMPP on the other hand is snappy. Despite this, XMPP is still more widely used than Matrix (not to mention whatsapp/signal/telegram). Why is this? Is there some downside I'm missing?

6 comments

[ 2.9 ms ] story [ 24.9 ms ] thread
It's 'extensible.' That's what they say. 'Extensible.' You know what that means? It means they didn't finish it! It's like buying a car, and they say, 'Oh, the engine? That's... extensible. You figure it out!'
Ignorant take. WhatsApp uses XMPP. Zoom uses XMPP.

You see, I kept learning about XMPP and thinking "this is really good stuff, why isn't it more widely used?"

And so I realized: It IS very widely used precisely for being so good. Then the companies intentionally making it un-interoperable.

I mean Matrix is also extensible.
We had XMPP in facebook's messenger and google talk up until both companies decided that they embraced this open protocol enough and removed support /s

Pretty sure someone recently commented on XMPP and why it failed - mostly because of variety of servers and clients which differ among each other too much.

In Poland the second most popular instant messenger network during the "golden period" beside Gadu Gadu was Tlen.pl. It used a modified XMPP but it was never fully compatible with it - it was impossible to reach contacts from tlen.pl domain. Then facebook arrived and people moved from "domestic" networks to global ones.

XMPP comes with the additional downside that most of the tooling around it is (or at least, a decade ago was) written in Erlang. Which is a niche purely functional language with a weird-ass syntax that is challenging to transition to from the C-syntax-derived procedural/OOP languages that make up the vast bulk of mainstream programming.
That's provably untrue. If you mainly write modules for the ejabberd server, indeed erlang might be on the menu, but that's very specific. If you develop on the client-side, pretty much all mainstream languages (JS, Python, C/C++ w&w/o Qt, Java, Go, rust, C#, …) have decent and independently well-maintained libraries to interact with XMPP. On the server-side, prosody (Lua) is as big (if not bigger) than ejabberd. And there are Openfire (JVM) and other implementations as well. Erlang is definitely not as unavoidable as you make it seem.