Recently released statistics indicate that in Australia, roughly 50% of people chat via MSN and just under 30% of people chat via Yahoo!.
The protocol used for MSN chat - the .NET Messenger Service - is closed and proprietary. This means, firstly, that those outside Microsoft who want to write a MSN chat client have to reverse-engineer the protocol - i.e. observe its behaviour in order to determine how it works - rather than simply refer to a specification; and unfortunately, the former is a more time-consuming process than the latter (frequently significantly so). It also means that such non-Microsoft chat clients will always be behind the 8-ball, as Microsoft can (and regularly do) change the protocol such that clients 'break' and have to be modified to deal with the modified protocol. Since MSN Messenger, sorry, Windows Live Messenger :-P, is only available for Windows, that leaves the increasing numbers of people on alternative Operating Systems such as Mac OS X and Linux in a difficult position.
A similar situation exists with regards to the Yahoo! Messenger Protocol, although it seems to me that Yahoo! don't modify the protocol as frequently as Microsoft do (or at least don't do so in a way that breaks non-Yahoo! chat clients so frequently). And at least Yahoo! provide a version of their Messenger client for both Mac OS X and Unix systems.
Hence the need for a chat protocol which is based on an open specification, not subject to the business needs / whims of a single company. One such protocol is XMPP, the eXtensible Messaging and Presence Protocol (formerly and informally referred to as 'Jabber'). Google Talk uses XMPP, as does LJ Talk (and apparently Yandex, one of the competitors to Google in Russia, is adding XMPP support). Amongst the features of XMPP are:
i'm enthusiastic about the long-term possibilities of XMPP. i've recently been reading the specifications, and hope to eventually get around to improving Haskell-based XMPP support - something i've been wanting to do for quite a while now, but haven't since i've not felt "in the zone" for programming. :-((
The problem, of course, is that XMPP support for things like crayzee emotes, file transfer, and voice and video chat, can't really compete with the offerings of Microsoft or Yahoo! - either because the relevant XMPP specs are still in development, or because they haven't been widely or adequately implemented. This, and Microsoft's ability to leverage its monopoly in the OS market to push its own chat service, together constitute a significant barrier to more widespread use by individuals of XMPP in the short term.
Having said that, it's also true that many people don't necessarily always use or need these extra features, and instead use chat services to just text chat. i thus try to encourage such people to start using an XMPP-capable client such as Pidgin or its Max OS X sibling, Adium, both of which allow one to use just one program to access multiple chat networks1 in addition to XMPP (e.g. MSN, Yahoo!, AOL, ICQ, etc.). A futile effort? Perhaps. But i feel that an open protocol such as XMPP offers far more opportunities for innovation and cool new services than closed protocols do; and the more people use XMPP, the more likely such opportunities will be taken advantage of, and the better our chat-based services will become.
1. Personally, i chat via ERC in GNU Emacs, using Bitlbee as a gateway server. This allows me to use ERC to chat with people on MSN, Yahoo!, LJ Talk, Google Talk and IRC. Very cool! But not necessarily everyone's cup of tea. :-)
The protocol used for MSN chat - the .NET Messenger Service - is closed and proprietary. This means, firstly, that those outside Microsoft who want to write a MSN chat client have to reverse-engineer the protocol - i.e. observe its behaviour in order to determine how it works - rather than simply refer to a specification; and unfortunately, the former is a more time-consuming process than the latter (frequently significantly so). It also means that such non-Microsoft chat clients will always be behind the 8-ball, as Microsoft can (and regularly do) change the protocol such that clients 'break' and have to be modified to deal with the modified protocol. Since MSN Messenger, sorry, Windows Live Messenger :-P, is only available for Windows, that leaves the increasing numbers of people on alternative Operating Systems such as Mac OS X and Linux in a difficult position.
A similar situation exists with regards to the Yahoo! Messenger Protocol, although it seems to me that Yahoo! don't modify the protocol as frequently as Microsoft do (or at least don't do so in a way that breaks non-Yahoo! chat clients so frequently). And at least Yahoo! provide a version of their Messenger client for both Mac OS X and Unix systems.
Hence the need for a chat protocol which is based on an open specification, not subject to the business needs / whims of a single company. One such protocol is XMPP, the eXtensible Messaging and Presence Protocol (formerly and informally referred to as 'Jabber'). Google Talk uses XMPP, as does LJ Talk (and apparently Yandex, one of the competitors to Google in Russia, is adding XMPP support). Amongst the features of XMPP are:
- Its federated model. Unlike the .NET Messenger Service, or the Yahoo! Messenger Protocol, anyone can run an XMPP server. If the Windows Live servers go down, no-one can contact each other. One XMPP server going down, however, does not have the same effect.
- The notion of 'resources' which allows one to use multiple instances of the same account simultaneously. So i can leave myself logged in at home by logging in as "myaccount@myserver.com/Home" and still log in at work by logging in as "myaccount@myserver.com/Work" without causing an end to the "/Home" login session.
i'm enthusiastic about the long-term possibilities of XMPP. i've recently been reading the specifications, and hope to eventually get around to improving Haskell-based XMPP support - something i've been wanting to do for quite a while now, but haven't since i've not felt "in the zone" for programming. :-((
The problem, of course, is that XMPP support for things like crayzee emotes, file transfer, and voice and video chat, can't really compete with the offerings of Microsoft or Yahoo! - either because the relevant XMPP specs are still in development, or because they haven't been widely or adequately implemented. This, and Microsoft's ability to leverage its monopoly in the OS market to push its own chat service, together constitute a significant barrier to more widespread use by individuals of XMPP in the short term.
Having said that, it's also true that many people don't necessarily always use or need these extra features, and instead use chat services to just text chat. i thus try to encourage such people to start using an XMPP-capable client such as Pidgin or its Max OS X sibling, Adium, both of which allow one to use just one program to access multiple chat networks1 in addition to XMPP (e.g. MSN, Yahoo!, AOL, ICQ, etc.). A futile effort? Perhaps. But i feel that an open protocol such as XMPP offers far more opportunities for innovation and cool new services than closed protocols do; and the more people use XMPP, the more likely such opportunities will be taken advantage of, and the better our chat-based services will become.
1. Personally, i chat via ERC in GNU Emacs, using Bitlbee as a gateway server. This allows me to use ERC to chat with people on MSN, Yahoo!, LJ Talk, Google Talk and IRC. Very cool! But not necessarily everyone's cup of tea. :-)
no subject
Date: 2008-09-07 10:47 (UTC)