Before I get started with my rant, I would like to make clear that I am not an expert on XMPP - some of the things I say could be wrong. Also, this is only my perception of the status quo, although I’d love to hear what you think about this topic. My email address can be found at the top.
XMPP is awesome
Ever since I learned about the Telepathy framework and the magic it does on the Nokia N900, I’ve been a supporter of XMPP. Of course Telepathy does a lot more and is protocol-agnostic, but a lot of the really neat features such as detailed presence status, voice and video calling, Telepathy tubes and even location awareness are specifically developed for and only work with XMPP.
Most XMPP clients suck
However, all of these exciting features are not really being widely implemented. Sure, the N900 had great Telepathy integration, but the N900 is dead and it’s successor, MeeGo, has yet to ship in any real, usable device. It doesn’t look much better for the various other contenders in the mobile space either - on iOS, XMPP is a total disaster because IM applications are limited to 10 minutes of running in the background. Android is a bit better, with Google Talk being well integrated into the system, but as the name already implies, limited to Google Talk.
It doesn’t look much better in the desktop space. I don’t know much about Windows clients, but last time I checked about half a year ago, most of the clients tried to differentiate themselves through integration of more protocols, platforms, social services and the rest of that mumbo jumbo.
Mac OS X has Adium, which is nice for chatting but doesn’t have very many advanced features. As far as I can see, development is happening at a very slow pace, audio and video chatting have been “coming soon” for ages.
On Linux, the situation is a bit better. GNOME has Empathy, a nice chat client based on Telepathy. It supports a lot of XMPP extensions like audio and video chat, location reporting and things such as screen sharing through tubes. It’s got integration with gnome-shell which works very nicely and hopefully, the GNOME Contacts application that is coming up will also fit in with the existing chat experience. Apparently KDE is also working on deeper system integration of Telepathy and I’m excited to see what they have coming up.
Most XMPP servers suck
But why is the client situation so bad? With Facebook Chat, XMPP is shaping up to quickly become the most used chat protocol on the planet. It would seem like IM, a tool that millions of people use every day, would be a top priority for every operating system vendor, both in the desktop and the mobile space, to integrate tightly into their software product.
I don’t think it’s because people don’t care about these “advanced features” that I’m talking about - many people use weird web-based location services like foursquare, gowalla or Facebook Places. People use Skype every day for voice and video chat. FaceTime has been one of the main selling points of the iPhone 4 (which has been selling well, so I hear). There clearly is a demand for diverse IP-based communication.
The main problem that I see at the moment is the quality of the servers that most people use. Although Facebook is based on XMPP, they’ve created their own little chat network with no possibility to benefit of the distributed nature of XMPP. Also, as far as I can tell they don’t support any of the advanced features that I would like to have and that are available on many other servers.
I can haz fix nao?
So how do we escape this dilemma? Well, I don’t think there’s a good way to fix the current situation. People are lazy, they don’t switch to another chat provider unless they are forced to. Facebook already had millions of users and therefore became a relevant IM service overnight. jabber.org or jabber.ccc.de? Not so much. The best option at this point in my opinion would be for Facebook to fix their servers. New, better XMPP clients would be written overnight and everybody would be happy - except of course those like me who don’t really want their chat network tied to a huge monster that is the Facebook platform. But I guess we would just have to tolerate that and benefit from the distributed nature of XMPP by using different servers to communicate with those trapped inside Facebook. At least we would have a feature-rich, omnipresent distributed communication protocol to communicate with all of our peers at last!
TL;DR Most XMPP clients suck because the biggest provider, Facebook Chat sucks. If Facebook fixed their servers at least we’d have a universal IP communication protocol.