2013-12-20

We kinda failed at freeing/opening up telecommunications for the the public, though it wasn’t really our fault.



Back in the nineties, ICQ and AIM were the significant players with a “first mover” advantage in the instant messaging market. MSN/Messenger/Live eventually ate their lunch, as users were looking for something less invasive and bloated for simple text communications. A few years down the road, Free and Open-Source software advocates pushed hard for the re-appropriation of our telecommunications with XMPP (Jabber) and an army of IM clients (Pidgin, Gajim, Empathy, Psi, to name only a handful) and server software. The idea was that decentralization was the key to independence and the future-proofness of our communications, that anyone could run a server instead of relying on a freedom and privacy-depriving third party.

The core problem, as is often the case for the adoption of open standards (or even open-source software to begin with), is the creation of a network effect. We had to advocate real hard for people to switch away once again from their established proprietary protocols and chatting applications in favor of this fancy new IM du jour. Trust us, this time it’s once and for all!

At some point, Facebook and Google started using Jabber for their instant messaging systems. With cautious optimism, we welcomed that increased visibility and support to generate the required network effect that would allow XMPP/Jabber to get off the ground as a viable replacement for proprietary chatting technologies.

The only thing we didn’t quite foresee was that Google would play the game nicely for eight years and then drop the ball.

I recently decided to migrate from the APINC’s server to GNOME’s Jabber server, and then I found myself observing the following harsh realities:

In my contact list, almost all of the contacts are GMail/Google accounts. The only ones that aren’t are hardcore Free Software enthusiasts.

The people using Google accounts are those friends who couldn’t be convinced to switch to Jabber per se: they had to be tricked into using it “because they already had a GMail account” – or they were running a multi-protocol client (such as Pidgin, Empathy…) because they asked you to install a distribution of Linux on their computer (really, it happens).

My contact list has not grown significantly in years.

My contact list is filled with people I haven’t spoken to in years – yet, I consider myself simultaneously sociable and capable of removing contacts that are of no interest to me. But then at some point you start thinking, “What’s the point to have an IM client if I end up removing everyone or talking to only 2-3 people?”

So here is the question that arose of all this: does anyone still care about Jabber/XMPP in 2013? Heck, does anyone care about traditional instant messaging, for that matter?



We blindly relied on Google to spread XMPP and declared victory as years passed quietly, not foreseeing them deriving from the standard so many years down the road, nullifying our network effect. Now, we face the problem of recreating a network effect—except that this time around, IM clients ain’t cool anymore: the Web ate their convenience. In-browser IM, powered by social networking websites that made contact management a thing of the past—something that we could not have imagined in the early to mid 2000′s—are making traditional instant messaging obsolete for many, many people.

Coup de grâce: with the coming of WebRTC for audio/video calls and file transfers, the Web is well on its way to conquering the last remaining technological advantages of traditional IM. It seems like we failed to provide and maintain a compelling, coherent technical offer in time. Just as an example, in nearly a decade of using XMPP, I’m still stuck with the following problems:

Unreliable servers/services. I’m selfishly hoping that, due to its small population and our fantastic sysadmins and infrastructure, the GNOME jabber server I’m migrating to solves these issues for me. The issue remains for the public at large however. “Reliable” servers are hard and expensive, and so the promise of gratis decentralization falls apart somewhat.

Contact authorizations randomly resetting every few months, forcing both parties to remove and re-add each other to be able to see their online status (this occurs no matter which jabber client. It appears like a “phase of the moon” bug with various XMPP servers – good luck investigating that)

With many jabber clients:

Audio/video chat breaking on a regular basis (if implemented at all)

Fast file transfers (or any file transfer at all, really) working 10% of the time (if at all), depending on your network, the server you’re on, the server your friend is on, and the alignment of planets

Remote desktop being broken (if implemented at all)

End-to-end encryption being generally nonexistent

Fragmentation, bugs and incomplete implementations.

Now you might say “but aren’t audio/video and file transfers just extra features? Isn’t ‘a faster email’ what IM is all about?”… The problem with that kind of objective is that we’re a solution looking for a problem, then. If you’re limiting your definition of IM to text, this functionality now exists in two (arguably superior) forms: social web IM, and the venerable IRC.

As part of the Pitivi, GStreamer and GNOME communities, I find myself realizing that everyone I need to chat with (besides the closest friends and family) are on… IRC. Why would I add these people to my jabber contact list when I’m going to talk to them the same way on IRC anyway? What does Jabber really offer in a compelling way that IRC doesn’t? You may say that IRC is room-based and doesn’t have the notion of a “contact list”, but that’s just a superfluous client UI detail. A contact list is just pinning down the names of those you care about, so theoretically there’s no reason why we couldn’t have such a thing in, say, Polari.

It seems to me like there is a place for multimedia-intensive telecommunications over WebRTC, and a place for many-to-many traditional text chat with IRC; but the middle-ground between them is kinda going extinct. I will still be showing my Jabber address publicly on my homepage for the foreseeable future, but maybe a day will come where nobody even knows what this artifact is for anymore.



I thought it would be interesting to write about this meta topic while we’re at crossroads. After all, some of you may have noticed this hobby of mine of being an observer of ecosystems and industry shifts ;) that said, this is quite open-ended and I’m not sure where to go from there, so let me end this blog post on an “public advisory” note regarding Google’s new unified Hangouts/Talk service:

The new relationship between G+ circles and GMail contacts led to a new level of messiness for Jabber clients: there are now contact “groups” that you cannot rename or delete. This led some IM clients like Empathy to turn off contact groups by default, as there was no sane way to deal with the issue (besides, who wants to group when we can search these days?)

Very few people noticed that Google now has a particular way of handling the “away” status: if you ever made the “mistake” of connecting to Hangouts using an Android device (or probably any mobile device), Google never signs you out of it. Even if your device is completely offline, you will always show up as online, albeit “away”. Props to google for misusing the notion of presence and the “Away” status like that. The tangible result is that if this is not your primary account (say, you only use it for multi-user conferencing), your friends and family keep sending you messages for weeks on end without you noticing it. The trick, on Android devices, is that you have to go into a hidden settings menu for the Hangouts application to manually sign out for that device.

Show more