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