Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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).



the protocol is certainly verbose, but it isnt very complicated. the verboseness comes with a lot of extra functionality


Here is the login procedure:

  * 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:

eg <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>

Those xmlns's are everywhere, and are stupidly verbose.

You can write IRC commands by hand into telnet. But typing in xml is just not feasable since it's so stupidly verbose.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: