Last year, we were witness to the great Instant Messaging (IM) Wars, featuring Microsoft, Yahoo! and AOL. Each pitted their most shrewd tactics against the other, in the hope of holding the IM crown and reigning supreme. Instead of the war ending in all out nuclear strike, however, the war fizzled out leaving users to choose from a large number of IM products.
The survivors of the great IM war, however, began to see an open source solution taking a share of the market. A small band of renegade developers, working on a project called jabber, provided a system which would be compatible with the other IM systems and IRC.
Jabber began life in 1998, and was founded by Jeremie Miller. As feature after feature was added, clients started becoming available for all the major platforms, and more advanced features such as encryption. Now clients such as gabber and WinJab are available that not only offer excellent features, but are also released under the GPL.
Towards the end of last summer, there was a massive surge of interest in jabber. Some claimed that, "jabber, an open-source, XML-based, distributed messaging platform, will change the way applications communicate over the Internet.", which was a comment featured in an interview with the creator of jabber. And, the combination of XML and open source makes jabber tantalizingly buzzword compliant. Indeed, with open source advocacy and strong community spirit, jabber should in theory be a winning IM system, dominating the foray of chat systems. However, a recent Linux.com poll showed gabber being used way less than other IM systems such as ICQ, and received only 1.35% of votes.
The initial excitement created by jabber last year landed Miller with a deal actually paying for the developers to work full-time on the project, funded by Perry Evans. Jabber.com was also set up by Evans to explore Jabber's commercial applications, largely due to the power of using XML as a framework for communication. Theoretically, the possibilities of jabber are endless, content can appear in messages and be defined and structured using XML. The extensibility of this system may allow Jabber to support SMS or even WAP in the near future.
The sheer amount of clients, and open source nature of jabber has made it a serious contender with the other IM systems. Most of the clients are competent and simple to install. There's even a perl/Tk client named Jarl that requires a rather large amount of dependencies, but thankfully it comes complete with an install script that uses wget to fetch packages you do not already have. In addition, the same author wrote Net::Jabber and the XML::Stream perl modules, which are supported by any platform that supports Perl and Tk.
The jabber clients for Linux kept making me wish there was a text based, epic-style client available. After searching and finding nothing, the kindly folks in jdev on jabber.org pointed me towards a client for groupchat, called sjabber, I found this client a little more natural than Jarl, so if you're used to epic/sirc, give it a try.
Clients aside, you may be wondering how Jabber actually works, and what servers are available. Jabber is a distributed client/server system, so you can actually run your own Jabber servers. The Jabber protocol utilises XML, and instead of using http or ftp to stream data between the clients and servers, it uses XML streams to minimise overhead. In a nutshell, Jabber provides an abstraction layer between client and remote services (such as other IM systems or IRC). XML facilitates the two essential features of an IM system; message and presence. Hence, XML defines the common data types to provide this service, and therefore provides Jabber's inherent flexibility from the users point of view. There's a Jabber server mini-HOWTO available too, if you would like to experiment with your own server.
Jabber servers use different `modules' to offer different services. So, for example, when you connect to jabber.org, your client will present you with agents including: AIM, ICQ, IRC, Yahoo!, RSS, MSN and a conference server. Some other servers, however, don't offer as many transport agents. Other than just group chat, you can see when your friends are online, and notify them with your presence too, by becoming available.
There are many documents dealing with the Jabber protocol, and this is due to Jabber's open status. By providing an open framework, developers have been able to create clients for many platforms, as we have seen. Interesting software can be written other than clients, just like IRC bots, by using the available perl modules. One could, for example, run an IRC bot using Net::IRC and Net::Jabber, exploiting both Jabber and IRC to the fullest. Whether or not Jabber will become the de facto standard for IM remians to be seen, but if you want to try jabber right now, go to jabber.com and try the JabberApplet version that will run in your browser.