Today
Instant messaging is something that I think a lot of people value. It has given us the opportunity to stay in touch, to socialize in large groups (Think IRC) and to exchange information in the blink of a second. Since the talk command was introduced on UNIX systems in the eighties, instant messaging has become a huge industry with strong companies behind the most popular services – MSN Live Messenger, AIM/AOL and Yahoo! Messenger, ranked by popularity cited in a comScore report from 2006. In Sweden, the client of choice is MSN Live Messenger, and it’s become the de facto standard – everyone uses it, and so you are locked from using anything else if you want to communicate with your family and friends. This dominance reminds me of the Internet Explorer 6 monopoly on windows-based computers, (Which luckily seems to be changing.) and much like Internet Explorer (especially 6) is a horrible browser, MSN Live has a horrible protocol. I have been an MSN user since version four and over the past five years or so it has been full of bugs and problems. Things seemed even out about a year ago, with the release of the seventh version, but just when they started to get their game together, a whole bunch of features were introduced with the newest iteration (multi-computer-login, anyone?) and we’re back to square one in terms of stability. One of the most irritating problems today is that file sending is pretty much broken. When sending a file, the recipient may receive the send request right away, shortly thereafter, or at any arbitrary time between the time of sending and infinity. It also seems as the problems gets worse the longer you are signed onto the network. Another questionable move made by Microsoft is to block certains domains altogether – messages that contain links to *.mine.nu and *.ath.cx addresses will simply be bounced back to the sender. Since both these domains are available for public registration of their subdomains through the DynDns service, many fully legitimate homepages are blocked. Rumor has it that this was due to a viral outbreak on the network, but if that was the case, there is no real reason not to remove the break after the virus had died out. Of course, the MSN protocol does have a few good ideas, such as letting people proxy file sending through their servers when both parties are in a harsh NAT environment, which some other services (such as Jabber, which we will get back to) are much harder to configure properly for that particular use.
Tomorrow
I truly believe that the future of IM is in the hands of multi-protocol clients such as Pidgin, Adium and Digsby. The ability to connect and syndicate friends over multiple networks is very powerful, and I think (and hope) that more and more people will change to multi-protocol clients. Not only does it free us from the shackles of one major protocol, it also makes the move to another protocol in the future much easier. The most prominent future protocol is Jabber, or to be completely correct – XMPP (Extensible Messaging and Presence Protocol) Which is a very interesting and versatile decentralized protocol. It is decentralized in the sense that anyone can set up a server. I could set a jabber server up on mypage.com, which would give me a username myname@mypage.com, now perhaps I know a friend who runs his own server over at myfriendspage.com, and so I could add him on my friends list by simply adding myfriendsname@myfriendspage.com. I’ve tried to draw up a quick schematic of what two connected servers might look like.
Graph of Jabber connections – click the image for larger view
In this case I have my own server located at MyPage.com, and my friend has his own server at MyFriendsPage.com, but on MyFriendsPage.com another friend of mine is registered. Even if we’re not on the same server, I can still talk to them both. This means that servers can go down independently of each other – one broken server won’t bring the entire network down. Jabber uses an approach similar to the way the SMTP protocol works. All servers are not interconnected, rather, connection is only attempted when there are queued cross-server messages.
Of course, this is a very small example. Everyone doesn’t have to run a private server, in fact Google Talk is Jabber-based and compatible with all other Jabber servers, which probably means that you have already been using Jabber without even knowing it! There are also a lot of servers out there that you can register freely at without any hassle. Something I have had some problems with is sending files. The protocol is supposed to support XML-based file sending through the actual chat server when both parties are behind NAT, but I have been unsuccessful in getting it to work. Of course, it could just be a simple case of user error!
Hopefully this free protocol will grow to become widely used and that any current incompatibilities and problems will be resolved. I know that I will be using my brand-new Jabber account as much as I can. If anyone would like to chat me up you can reach me at stasoline@jabber80.com
As always, feel free to share your thoughts and comment!