Well, the latest craze to hit the Linux bloggers is talking about Empathy. Everyone is talking about it. It’s apparently going to be in the next version of Gnome and Ubuntu is considering replacing Pidgin with Empathy for the next release. First of all, depending on how much work is done on Empathy between now and then, I think this may be a bad idea. Ubuntu is the distro we give our Linux n00b friends to play with. Pidgin can do (more or less) everything Trillian can do (and definitely everything AIM can do – except voice/vid). Do we want them thinking that Linux is crap because they are using the feature incomplete Empathy?
But this isn’t even the most interesting thing about this for me. The most interesting thing is that Empathy uses libpurple for the backend for some of its IM capabilities. On first glance this seems like the perfect *nix-y thing to do. You don’t want developers wasting their time writing functionality that already exists. Instead they should make the core functionality a library that all the other programs can use. This gives rise to all kinds of awesome programs – think of all Gnome programs using one program to provide spell checking so that they don’t each have to implement it and their own dictionary, etc. However, on second glance you start to wonder if it’s a good thing in this context. The spelling library being used by all the programs is fine because they don’t all compete with each other.
Now we have Empathy as a possible replacement for Pidgin and it uses Pidgin’s libraries! That seems like a bit of a slap in the face to me. It’s like, “Thanks for your libraries and now I will use them to dominate you and wipe you out.” After all, I keep hearing people calling for distros to only ship one program per function. One word processor and ONE IM program. So if they start shipping Empathy as the default, I think that for a growing category of new Linux users, that means they won’t be using Pidgin. After all, why stray from what the distro has provided for you?
So, first of all, how does this make the Pidgin developers feel? It’s like a fork, but even worse because it’s a totally different code base that can’t be morphed back into Pidgin. And what if Empathy gets more and more popular until no one is using Pidgin? Then the developers stop working on libpurple. But Empathy depends on libpurple and they’ve just shot themselves in the foot. Well, at least until they get someone who understands enough about how libpurple was working to continue working on the code (the magic of the GPL). But, more likely, they’ll just use libpurple as a stop-gap and then work on a new library – wasting the developer time they wanted to save by using libpurple in the first place.
This reminds me of a similar battle in the Linux world – Oracle’s Unbreakable Linux vs Red Hat Enterprise Linux. Oracle is using Red Hat’s source code to make their own Linux. They are competing against, and hope to dominate Red Hat. But what happens if they crush Red Hat? They’ve killed their source of source code.
So, where do things go from here? There are three possible scenarios that I can see. 1) Empathy and Pidgin get into an arms race. This benefits the users from the competition as more and more features get added. Of course, it can also hurt the users if new features are added so hastily that they introduce tons of bugs and security holes. 2) The Pidgin project folds into the Empathy project. Kind of like an unforking, in a way. Pidgin, which has always been the default IM client for Gnome, basically becomes an official Gnome project by way of becoming Empathy. 3) The Pidgin team gives up UI coding. They decide to remain their own project, but only work on libpurple. There are already other programs that use libpurple like Adium and some other duck-themed one for Macintosh. So they’re already used to people using their backend and creating other programs. (They’re just usually on Macs and don’t compete directly with Pidgin) I think I’d prefer either outcome 2 or 3 as it’d probably result in the least ill-will in the community and the most benefit for users.