MSN, AIM, and Yahoo have no such qualms, since they have their own users and couldn’t care less about the rest. In the meantime, one of the largest text chat messaging systems might these days be Skype (which is also totally closed). And, of course, MySpace and Facebook, having their own large user base, launched their own messaging systems as well (fortunately, both provided APIs for them). Ironically, the first uses of XMPP were for creating instant messaging gateways. You basically just downloaded a single XMPP-based client and logged in to a Jabber server, which in turn would convert XMPP messages to any other protocol out there. This has become far less important nowadays, since IM clients have started to be multi-protocol as well (even MSN users can talk to Yahoo users and vice versa, with their respective IM clients; Apple’s iChat talks to AIM and anything XMPP-based; Miranda/Trillium for Windows can talk to almost everything out there, and AdiumX for the Mac is the undisputed king of multi-protocol, multi-user connection: it supports all messaging systems in the world except for Skype, and, well, Second Life 🙂 )
Granted, when a technology is based on a protocol, you can do these things easily. The same applies for Second Life: every day it becomes more clear that, from a purely technical point of view, Second Life is the protocol, not the service. That’s why we have countless viewers and at least three server (simulator) solutions — LL’s own, OpenSimulator, and the light-weight Simian. All can communicate with each other because they share the same protocol (at least, to a degree).
Now contrast that with the Web 2.0 social networking sites. If you’re a Facebook user and wish to send an IM (or an email) to a MySpace user, you’re out of luck (I use AdiumX, so I can chat to both Facebook and MySpace users without being logged to either website! But that’s cheating: actually, I have to have an account with each social networking site for the “magic” to work). If you share a picture on Friendster, people on Netlog cannot comment on it. Sure, they can log out, register an account with Friendster, update their profiles, and comment. But there is no direct way of doing that. Web 2.0 sites, although touting their “networking” abilities as a mantra that will bring the whole world salvation from isolation, are, ironically, the most closed and isolated service models ever created — all in the name of “crushing the competition” by forcing people out of their favourite services to go to the “most popular ones”.
So, what did Google do? Very simple. OpenSocial was clearly not enough, since it just addressed the “extensibility” issue of social networking websites, i.e. allowing users not only to add content (text, images, videos…) but also applications, and use the same applications across social networking sites (the develop once, deploy many model). Integration of cross-site information — like, say, sharing images posted on one social site with people registered on another; adding comments; sending messages across social networking sites; etc. — was not easily covered by this. Granted, there are a lot of mashups allowing, say, Facebook status to be tweeted as well (or vice-versa). Or even cross-posting images across several sites. All this is possible and being done right now.
Google Wave, however, went all the way to create a framework where independent social networking websites are able to cross the boundaries. What this means is that you can get a Twitter feed, reply to it, and it’ll show on your Wave page — but also on Twitter. You can post pictures on one Wave-enabled social service and everybody on a different social service can comment on it. You can get emails into your Wave, and let your friends comment on your emails — or share emails with the world — and so on. You can chat via Gtalk and others can turn that chat into a microblogging stream… and get an RSS feed for it. And, of course, you do not need to be registered to Google‘s Wave. You can simply download the software, run it on your own server(s), and federate with Google — so that people logged in to Google Wave will be able to receive information from your self-hosted Wave server, and vice-versa.
Now the latter is the exciting aspect of it. Instead of “isolated islands”, Google allows you to run your own social networking software — and link it together with all other Wave servers. All this thanks to the Google Wave Federation Protocol — and yes, you’ve guessed right, of course it’s XMPP underneath. An “account” on Google Wave is just an email, and since emails are guaranteed to be unique world-wide, and the default “identity” on XMPP anyway, this simply means that you can make sure that your email is the only thing you need to use on any Wave-compatible social networking tool. Register once — no matter where you got your email address! — and you can use it to join all “GWFP”-compatible social networking sites. And yes, the GWFP extension to XMPP is published, open, and due to be reviewed as an Internet Protocol “soon”.