Web 2.5
Moving beyond instant messaging, XMPP offers a lot of potential as a generic XML delivery system. It’s a much better protocol than HTTP for building XML-driven applications, since it doesn’t have the overhead associated with polling.
In recent years, news feeds have grown in popularity. The IETF has ratified the Atom standard for delivering these feeds. Because Atom is XML, it can be embedded in an XMPP stream, and a standard exists for doing exactly that. Most feed readers poll every half hour or so to check for updates. An XMPP-enabled feed reader would get instant notification as soon as the article was published.
News feeds aren’t the only features that benefit from efficient asynchronous notifications. Any web application that spends a long time open would do well running over XMPP. This is particularly true of collaborative applications, in which an update by one user should be propagated as quickly as possible to the others. Using XMPP allows much less bandwidth and CPU time to be wasted constantly polling. When the server receives an update, it just needs to send a message with the changes to each of the other users; it doesn’t need to constantly reply to polls saying, "No, no updates yet" or waste resources keeping a number of client connections open. The offline delivery semantics of XMPP can very be useful in this situation. Messages can be sent to a user while the user is offline, and then processed on the client side when the client reconnects (to the network, rather than to the specific applications).
In its common deployments, XMPP also has a friends-list concept, which makes it very interesting for social networking. Social networking via the web always seems something of a hack, since it requires you to log in somewhere and check for updates on your friends’ activities. With an IM client, you already get a view of which of your friends are online, what they’re doing (if they set a status message), what they’re listening to (if their client supports the user tunes XEP), etc. You can start talking to your friend with a single click (even via voice or video, in some clients). The XMPP network is already a social network.
One thing it lacks is any kind of "friend of friend" relationship. There are a number of possible ways to implement this capability, and it’s a project that I’d be interested in pursuing at some point. The Jabber Software Foundation describes Jabber as P2P (person-to-person), rather than peer-to-peer. Jabber already has far richer person-to-person connections than can simply be built on top of the web.