2006 will be the year of XMPP
As Ralph Meijer puts it, I am still delinquent in publishing the notes I took after BarCamp Amsterdam:
I suppose the plan for World Domination™ will remain a secret until Boris Mann publishes the result of the notes he took at BarCamp Amsterdam. The event was totally awesome. Thanks all!
I'm *still* carrying the notes around with me -- I had the great good fortune to spend a lot of time with Ralph and Edwinn and suck all the Jabber aka XMPP knowledge I could out of them that I could. I've been following the growth of Jabber/XMPP for years, and here are some of the concepts and happenings which I think are going to blow it wide open in 2006:
- A major Internet entity commits to natively using the XMPP protocol for a new IM network: Google did this with the release of GoogleTalk; their recent deal with IM makes me think that Google - AOL - Apple iChat interoperability could happen in 2006. At any point, Google could also turn on gateway services to MSN and Yahoo as well.
- Consumer multi-network IM gets funding: Meebo got WAAAAY too much money. It's a simple, simple service, and there is no unique technology or IP. BUT...why are so many people using it? Because being able to talk to all your friends, no matter which network, is the killer app. And while the Mac has one of the best multi-network clients ever in Adium, on Windows it's just a pain. Oh, and web apps that you can get to from anywhere -- especially for a communication app like IM -- are infinitely better than desktop installs.
- XMPP isn't just about IM anymore: there have always been really cool examples floating around in the Jabber community (e.g. Google Maps + Jabber, including a *very* cool way to login by having the server message you a login phrase), but the really big news is JINGLE, including the immediate release of an audio transport, with Asterisk integration almost immediately and video probably not far behind.
- Increasing open source activity: eJabberd is one of the best XMPP servers period. For Java-heads, there is Jive Software's Wildfire, now available under a dual license. Jive Software also released a Flash Jabber API called XIFF, meaning you could build your own version of GTalkr (disclaimer: I know Wes and Dudley, the masterminds behind GTalkr...it's not that easy, and right this minute they're installing killer features to blow your mind :P). Now all we need to make Jabber really accessible for developers is a great server written in one of the "P" languages -- PHP, Python, or Perl. Since the Python Twisted networking stack has Jabber support in the Twisted Words component, and Python makes for great daemon-izable apps, it's probably the best choice.
- The push for realtime: this goes hand in hand with the last point. The super secret part of XMPP is that it's not about IM at all...it's a generalized XML message passing protocol optimized for real-time. Every ounce of effort to get faster polling of RSS is wasted...it's an asynchronous poll model -- XMPP is the step beyond. I suggested that Plazes throw away it's proprietary protocol and use XMPP directly, preferably using the User Geolocation JEP that has already been defined for exactly such uses. Anything else you want to pass around in real time that can be represented in XML? Like real-time ATOM? Yep, the possibilities are endless.
What are my next steps with XMPP? Well, I'm getting very interested in what a combination of a Jabber server plus identity store might be able to do. Parceltongue is a placeholder for potentially writing such a server in Python (why another server? well, part of that is in the secret notes...let's just say that Jabberd 1.x and Jabber 2.x are both needed if you want to run a complete set of services, plus the aforementioned desire for a "P" language to run a Jabber server with).
I'm going to be attending FOSDEM 2006 in Brussels, and I hope to talk with and about Jabber while I'm there, focusing mainly on community aspects (see Ralph's "Call for Presence"). Ralph, maybe you and I could do a "Jabber World Domination" presentation oriented towards non-Jabber users? It seems to me that much of the community feeling is focused around individual applications (which is fine...it's hard to get verklempt about a protocol...hmmm...unless maybe it's RSS :P) and there needs to be some work done on interoperability and lots of great stuff actually getting out there and getting the recognition it deserves.