Email or username:

Password:

Forgot your password?
Gregory

Instant messaging has existed for about as long as the internet itself, yet there still isn't a sane IM protocol. Every single one out there is bizarre in its own way.

(brought to you by me working on yet another Telegram contest)

9 comments
Gregory

- Matrix: the absolutely bonkers state resolution algorithm that's so complex that mathematical notation comes out. No socket support, only HTTP long polling.

- XMPP: no packetization whatsoever, just two endless XML streams. Users can hide their real JIDs in chats for some reason.

Gregory

- MTProto: once you've figured out the docs written by Nikolay Durov (no small feat!), you realize that chat rooms come in two flavors. Also the "TL" binary serialization is properly weird sometimes. There's a protocol message acknowledgement mechanism on top of TCP. Sometimes you receive "updates" (events) out of the blue, sometimes you have to ask for them, sometimes API calls return them.

Gregory

- Whatever VK does: it's not an "instant messaging protocol", but instead it's a group of API methods. You receive events in real time via long polling, and you do everything else through the API.

Mo Rijndael (archive)

@grishka
VK: anyway, to make your life not too easy, we use arrays instead of objects in API. Please, don't ask, why...

Alexey Skobkin

@termonoid @grishka
I wouldn't be surprised if they're trying to save some bandwidth 🤷‍♂️
VK was written by programming contest winners who can make premature optimization even when it's not necessary.

kaip :xmpp: :archlinux:

@grishka Being able to hide my JID in public rooms is one of the ~two things I like about #XMPP.

The other one is that XMPP is actually standardized by the IETF and not just some protocol by some startup with a website.

DELETED

@grishka Maybe we should codify our conversations as a series of dots and dashes!

Gregory

@cy maybe we should also send and process the dots and dashes in groups of 8

Go Up