I Am Jabber Powered!
So a year or so ago, I put my love for Jabber away while I worked at Y! and embraced the corporate, proprietary IM system of my employer. I am happy to say that I have since switched back to Jabber, and not only that, have badgered many of my contacts to start using Jabber as well either by getting them to install their own Jabber server, or using Google's gTalk which is based on it.
Let me talk about why Jabber rocks in quick points.
First and foremost my IM username is also my email address. Simple and easy and all mine. You can do this two ways, actually, by setting up your own Jabber server if you have it, or by using Google Apps, and re-routing the Jabber traffic with some DNS magic (using GoDaddy, it's pretty simple and easy to do).
Setting up a server isn't a big deal, actually, so don't let that put you off. A big epiphany I had a while ago was that just like I install and use an entire email server for really no other people besides myself, installing a Jabber server for the same purpose was equally as valid. Happily, with a Debian server and jabberd 1.4, it's a very quick and easy install, and has almost zero impact in terms of memory or processing. If you want a more robust server, then there's the insanely great Java based OpenFire Jabber Server by the Jive Software guys, and the insanely scalable eJabberd server written in Erlang (which, for you non-geeks, is a once-obscure telecoms language which has certain inherent scalability making it perfect as an IM server). OpenFire is especially nice for anyone who wants a Jabber server that 'just works' - it's so well done, it's unbelievable. The only reason I don't use it is because being written in Java it's a bit hefty and I'm saving my server's resources for web stuff.
Now, because my IM system is on my own server and the protocol is open, I am free to do anything I want with it - like add bots for example or set up processes that send me messages that would be bounced as spam by other IM services. And I don't have to use anyone's SDK, or worry that the protocol will be changed tomorrow for no reason other than to mess with everyone who's not using an approved IM client. I can also let others use my server bots as well, or for conferencing, etc., again with no worries. And something gives me a warm fuzzy knowing that my IM traffic goes from my desktop, to my own server to my friend's server to their desktop, with no one in between.
And as I mentioned in a few posts a while ago, Jabber allows different log-ins without causing havoc to the currently logged-in clients - so I can log in from various PCs, and from my phone. Multiple points of presence is a must-have functionality for IM I think. Now, the only problem is the dearth of good Mobile Jabber clients - but hopefully that will continue to improve as Jabber gets more popular.
Here's a lesson I learned that I want to convey to any techies out there: Use Jabber as it's own IM service - not as a "universal IM service". Yes, you can indeed install "transports" which talk to other IM systems on your Jabber server - and I eventually did that - this makes the service more flaky in general. Once I got comfortable using Jabber daily, and more importantly was confident in my jabberd server's reliability, I did actually decide to add the various IM transports, but that's a second step. Start first with Pidgin (Gaim) or Adium or some other universal client first - if your friends have both a gTalk and other IM client, get them to start using the Jabber one to talk to you (mark the other ones as "away" if you have to). Once you've gotten a base of Jabber buddies, then you don't have to worry so much about the other IM networks, and thus the flakiness of the transports won't matter as much. Get it? That's how I transitioned, and it worked well.
A word of warning - the authentication stuff in Jabber can still be wonky. Sometimes you have request and/or re-request someone a few times before they'll show up in your contacts, and then they're liable to show up several times. I wish this was easier, but it's not, so be prepared for a bit of frustration here.
I really think that thanks to services like Google and Twitter and universal clients like Pidgin and Adium, that Jabber may be reaching a critical mass of support that it needs to start taking off. Instant Messaging has become a vital tool - replacing email for lots of things, especially with that younger generation out there - and companies want more control over their IM services they offer. Look at Twitter's Jabber bot as a perfect example. This would be an expensive service if they tried to make a deal with AOL, MSN and Yahoo! to put that bot on their network, if it was even possible. But using Jabber, those guys were able to host their own IM bot and not have to ask anyone permission to do it. The fact that Google has officially sanctioned Jabber with gTalk means that more clients and online services now provide support for Jabber as well - when I tried BeeJive.com the other day for the iPhone, I was happy to see I could log in with my Jabber account. This wouldn't have been the case just a few years ago.
And now that I've moved to using Jabber as my preferred IM, the question is what client should I use. And that's the impetus for today's post, as I had been using Pidgin, but it doesn't play overly well with Jabber - especially with Transports. I then tried Psi, which is a very powerful client, but written in Qt yet I'm a Gnome guy (in other words, it didn't look/work the same as everything else on my system). I tried a few others before landing on Gajim, and I have to say so far it's pretty great! Written in Python and PyGTK, it's very extensible, and it integrates with Gnome perfectly. It also supports file transfers via proxy.jabber.org server (with backup) which is wonderful to see as well - no having to deal with P2P and opening ports, etc.
I really look forward to the day that the three major IM networks finally realize that they need to open up and start supporting the Jabber protocol so that everyone can benefit from focused developer attention. There's so much innovation in many of the proprietary IM clients - for example, the Yahoo! IM client has a plug-in system which is great - and integration with their Launchcast service, so not only can I see what song you're listening to, I can click on that song and listen right along with you. MSN has a great system for sharing out folders to buddies that "just works" - it creates a local folder with the name of the contact, and anything you put in there is available to that buddy - no need to 'send' it to them. Simple and easy. (You can tell the Pownce guys aren't Windows users, btw, as if they were they wouldn't have had the need to create a service which does essentially this exact same thing). And both MS and Y! systems allow various status messages to be sent along as well to show up next to your contacts - such as new blog posts in Spaces or 360, etc. These sorts of presence features are killer apps and it's a shame they're tied up with just one network or another, no?
Anyways, as always, your thoughts welcome. You can even IM them to me... as long as you're using Jabber. ;-)