One of the main reasons IMHO is that it's a ridiculously over complicated horrible badly designed hideous protocol, which was designed by committee rather than organically grown.
Writing a bot for XMPP isn't a simple matter of sending a few plain text commands. It's an absolute nightmare. It's so verbose and overcomplicated it's just not funny any more.
(I'm currently working on XMPP support in Mibbit, and writing the protocol lib myself so the pain is still raw).
* Send out some xml spam to "create a stream"
* Receive a stream reply, with feature sets.
* Send out starttls
* Get a reply back
* Switch to secure mode
* Send out some xml spam to "create a stream" inside the first stream
* Receive reply back, check supported auth modes
* Send out auth
* Receive reply back
* Send out some *MORE* xml spam to "create a stream" inside the first 2
* Receive reply back, with features
* Bind
* Create session
THEN you can do something useful. Most of the verboseness is idiotic XML:
yeh its too much to be typing into a telnet session, but the extra functionality like being distributed, offline storage, out of band messaging can be very very useful.
irc works great as a chat protocol, xmpp is more viable as a generic messaging protocol
Simplicity and ease of access to a protocol is -key- in widespread adoption. This is why REST-like APIs are so popular - you can write a quick script in practically any language, you can test it on the command line with a quick CURL, or you can simply boot up a web browser and try it out.
Writing a bot for XMPP isn't a simple matter of sending a few plain text commands. It's an absolute nightmare. It's so verbose and overcomplicated it's just not funny any more.
(I'm currently working on XMPP support in Mibbit, and writing the protocol lib myself so the pain is still raw).