Tangentially related: I find it really ironic how the IM landscape has changed over the decades.
At first we had proprietary protocols like ICQ, AIM and MSN. Then we got clients that reverse-engineered the protocols and supported logging onto multiple networks, which was nice, but the cat-and-mouse game between IM vendors and the people reverse-engineering the protocol was annoying for all parts (i.e clients stopping to work and wasted effort on the IM vendor side).
In all this mess, Jabber was born, trying to standardize IM with the XMPP protocol and the Jabber implementation.
It never flied.
And now we are at a point where all these additional IM services pop up. Ironically, all of them are using XMPP under the hood but all of them go great lengths in adding crypto to make absolutely sure that they are not interoperable.
This is one of the rare cases where a standard was created which everybody is actually following, but which didn't create any kind of interoperability between clients.
It pains me endlessly that I must know whether I can contact person X via iMessage or WhatsApp or now this. And this time it's not even about reverse-engineering protocols. It's just about checking whether your client is a "legitimate" one. There's no technical reason besides actually removing checks and making server names configurable why WhatsApp couldn't talk with iMessage or why GTalk can't talk with WhatsApp and so on.
>It pains me endlessly that I must know whether I can contact person X via iMessage or WhatsApp or now this.
I think the situation is short term though (5 years?). Right now there's a battle for dominance on the mobile front and everyone is taking the proprietary route in an attempt to gain market dominance.
AOL had this chance with standardization years ago with AIM but they not only screwed up the entire company but this product as well.
Both iMessage and Whatsapp are using XMPP which does in-fact support store and forward of IM messages - hence it's being used by these services.
The only additonal part is the background notifications which use Apple's (or Google's on Android) proprietary system. But once you start your client app, they connect to the server via XMPP and use that for message delivery.
At first we had proprietary protocols like ICQ, AIM and MSN. Then we got clients that reverse-engineered the protocols and supported logging onto multiple networks, which was nice, but the cat-and-mouse game between IM vendors and the people reverse-engineering the protocol was annoying for all parts (i.e clients stopping to work and wasted effort on the IM vendor side).
In all this mess, Jabber was born, trying to standardize IM with the XMPP protocol and the Jabber implementation.
It never flied.
And now we are at a point where all these additional IM services pop up. Ironically, all of them are using XMPP under the hood but all of them go great lengths in adding crypto to make absolutely sure that they are not interoperable.
This is one of the rare cases where a standard was created which everybody is actually following, but which didn't create any kind of interoperability between clients.
It pains me endlessly that I must know whether I can contact person X via iMessage or WhatsApp or now this. And this time it's not even about reverse-engineering protocols. It's just about checking whether your client is a "legitimate" one. There's no technical reason besides actually removing checks and making server names configurable why WhatsApp couldn't talk with iMessage or why GTalk can't talk with WhatsApp and so on.