Hacker News new | ask | show | jobs
by Andrew_nenakhov 1524 days ago
> Everything that we expect today - chat history, reliable message delivery, multi-device synchronization - is an afterthought in XMPP.

The author grossly misunderstands XMPP. The first letter X stands for "eXtensible", and extensible it is.

Chat history, milti-device sync, reliable message delivery is not an afterthought, it is extension (and btw they all are solved problems as of now) The protocol is by design modular, and it is a strength, not weakness.

You can't realistically expect all the world to share the same version of your monolithic messaging protocol. Different instances will support different features, some implementations will lag on with newer features, etc. The only possible answer to this is modularity and legacy fallbacks for some features that are not supported by remote party.

Sure, the protocol could develop more rapidly. I actually believe that XMPP survives despite efforts of the XSF coincils, not thanks to them. However, the core of the protocol is strong and allows to build communication products with UX not worse than Telegram or Discord. And if you lack some crucial feature like a properly working group chat, you can make your own XMPP extension - because eXtensible it is.

1 comments

In most people's mind extension = optional = afterthought. Especially this is the case if you cannot guarantee that something which supports the protocol actually supports the feature then it's difficult to use that feature. The main point is that the mentioned features are no longer optional for a 'chat protocol', any protocol which does not have them as core or required features is not going to be considered meeting the requirement of 'chat protocol'.
Most people's mind do not care about protocols, they think of products. And speaking of products, every major xmpp server implementation I know (and I know at least five) supports all these features.

Also. You don't really need any of them to send messages between servers. All this stuff matters only for communication between your clients and your own server.