Okay so, recently Google announced that they're moving from Google talk to Google Hangouts. Google has stated that Hangouts will be a more awesome, unified experience, bringing Google Plus's Hangouts feature straight into the IM client, allowing people to start voice/video chat hangouts from anywhere with minimal effort. It'll be a grand reinvention of how they've been doing their IM stuff and it'll be great. I admit, the features they promise sound pretty cool.
One feature they quietly (and I mean really quietly) removed, however, was support for XMPP federation. A lot of people don't even know what this means, so there's not really been much press about it. This post will hopefully help explain why this is a big deal to people (especially me), and why this is personally upsetting, and why I think it shows some bad faith on the part of Google.
First, what is XMPP: XMPP's site explains it better than I can. XMPP is an open protocol for instant messaging. It's been around for forever, it's stable, and most importantly anyone can set up an XMPP server. By using XMPP, I'm not reliant on the good faith of a company like Google, AOL, or Microsoft to be able to communicate. At least that's the theory. XMPP, as far as Google Talk is concerned, has allowed people to use their client of choice when connecting to Google talk as any XMPP client will work with it, and has allowed people using Google talk to communicate with people connected to XMPP servers. This has caused an increase in the number of XMPP users because almost everyone has a Google account, and therefore XMPP users could reach almost anyone they wanted through Google Talk. It's been a great victory for open software and open protocols!
That's all changing. Like I said, Google was very quiet about it. I didn't even realize they'd stopped supporting XMPP in their new Hangouts app until I asked my boyfriend why he'd stopped responding to my IMs. He claimed he never got them. Posts on the Google product forums noted similar confusion until someone curtly pointed out this page. Google's announcement of dropping support for XMPP comes in this form: a banner on a few of their help pages, and an announcement somewhere I can't even find. They claim (at least this is what I've heard from third parties so... grain of salt) that this is necessary to improve their product and increase the unification of their chat software. Meaning, they want to move away from the XMPP standard because they don't want non-Hangouts contacts appearing in buddy lists that may or may not support certain Hangouts features coming down the pipe (video chat hangouts I guess would be one example).
I call bullshit on this. The XMPP standard has clear guidelines for supporting video and voice chat and Talk has even allowed voice chat to non-Gtalk XMPP users in the past. All the protocols Gtalk uses are fully documented so clients can support them and most are open standards as part of the XMPP feature set. I will admit that the XMPP extended features and compliance therein can be a melange of issues with regards to server and client support, but you run into the same support problems when trying to do anything with voice and video chat (do you have a camera? what about a mic? is your system set up properly?).
But enough of that. Let's talk about this is actually doing to XMPP users. Right now, as it sits, I have 42 online buddies on my XMPP contact list. 36 are Gtalk users. Of those 36, who appear online and active, I cannot talk to about 20 and that number is expected to grow in the coming days. Why? Because Google hasn't entirely killed XMPP Federation. I can see these buddies online; I can even see them online when they use the Hangouts app. If I attempt to send them an IM, however, it never goes through. Looking at this from the Hangouts side, these buddies don't see me online at all. I have totally disappeared from their contact list. If I had to guess, I'd imagine Hangouts fully supports XMPP, but the client is hard-coded to ignore IMs from people not on your buddy list, and the XMPP contacts aren't ported over.
Long story short: 90% of my buddy list is now polluted with contacts that appear online, but I can't talk to. They're giant ads for Google Hangouts, expressing to me that I will never be able to talk to these people unless I get Hangouts and drink the Google Plus punch. This is entirely a show of bad faith in my opinion. Even if there's no intent to use my buddies as billboards for Google Hangouts, this is a terrible violation of the XMPP spec, and an act of ignorance of good software development practice. Rule one of software development is "Don't surprise your users". Having contacts that appear online, but silently and without feedback cannot receive my IMs, is about the worst surprise you can give a user of an instant messaging system.
So in summary... Google has pulled the plug on support on a protocol they've helped popularize, after years of promising interoperability, for reasons that are dubious at best, and in a way that leaves people who don't jump to the new Hangouts app unable to talk to their contacts without any feedback that their IMs aren't getting through... and they've done that with no warning to anyone. I imagine there's a bunch of people out there wondering where some of their buddies have gone, or why their messages aren't getting responses, because this isn't documented anywhere.
The counterarguments I hear on this are, as above, that it'll make the service better. I disagree, but only time will tell. The other argument is that Google doesn't owe XMPP users anything, and I'm expecting a lot to be able to talk to Hangouts users while not even using Hangouts myself. I have a few problems with this... mainly that yes, they don't owe XMPP users anything, but they're using the XMPP spec which has a mission of being open and interoperable, and that's a mission that Google built Gtalk on. Gtalk got popular because of its interoperability: Gtalk to AIM federation? That's XMPP at work. The ability to connect to Gtalk with Pidgin? XMPP again. The ability to connect to Gtalk from multiple clients and the server just knows where to send IMs? XMPP yet again. Google built Talk on XMPP and are now neutering its most identifying feature. Secondly, Google still gets what they want from me, even if I don't use their service directly. How? Because 90% of my buddies use Google talk. They can still datamine my conversations; most of them anyway. What else do they want from me?
What do I expect Google, or users, to do? Nothing. Vanilla XMPP users are a minority. Always have been, probably always will be. Most people who use XMPP (Users of Gtalk, Facebook chat, etc) don't even know they're using it because companies have an interest in neutering the one feature that makes XMPP unique, identifiable, and great: server to server federation. I just wanted it documented why I'm upset, because a lot of people who don't know the origin, core, and philosophy of the protocol Gtalk has been using for years haven't understood why this is upsetting and a very 'evil' move on Google's part.
PS: This also means you people who have relied on Gtalk to talk to AIM contacts are out in the cold too.