XMPP and Jabber
simonholywell.com
simonholywell.com
I'm looking at you, WhatsApp, iMessage and all others.
(Genuinely curious - I see suggestions for replacing email on a regular basis, but rarely ones that are deeply thought out.)
One of big potential benefits I see is the XMPP concept of contact requests. Simply separating new senders from existing senders at an architectural level seems like a great start for an email replacement, both in terms of user experience ("who I know" is fundamentally separate from "who I don't know" regardless of the client), and in network utilization (spam is only ever as long as a request header instead of an entire message).
Because in the end, and despite all its kludges, e-mail doesn't need replacement. Its biggest problem remains spam, and even that is under control by all the major providers.
As a proof of concept. It should be easy to implement a "shortcut send" into an email client, which sends a mail directly over XMPP, if sender and recipient are both online with this client.
For a mature messaging protocol, that smells really really bad for any serious use.
The core support for the concept of presence in XMPP is also pretty compelling -- especially in remote collaboration settings, where transparency around another person's comings and goings can significantly reduce conversation friction.
That being said, the current XMPP protocol, even including the large set of approved protocol extensions, still falls very short of what would be needed for it to serve as a viable email replacement. As others in this thread have mentioned, the core protocol doesn't include any specification for how to handle messages directed to offline users, and while XEPs have been developed to address this, implementations still vary widely between implementations. Limited by the structure of JIDs, the protocol extension for multi-user chat ends up being a clumsy hack. It looks like there are also problems with large binary data transfer (see http://metajack.im/2008/06/10/binary-data-is-xmpps-achilles-...).
Obviously, a lot of these problems can be resolved with additional protocol extensions, but this risks creating a hodgepodge of conflicting standards and generating a menagerie of different implementations before drafts are settled on. The fact that the core XMPP RFC makes no allowance for offline messages, which is essentially the core of email, makes me think it might be unwise to try to hot-swap the two.
I've long been fascinated with XMPP, because it is so flexible. Rather than focusing solely on a specific purpose (like IM), Junction exposes a middleware framework similar to Express so that you can develop applications on top of XMPP.
I've been happy with the approach, and I'd be curious to get feedback from other developers who've had similar thoughts regarding XMPP.
It might also interest Node.js developers to know that this article was written as part of a tutorial on writing a Google Chat bot with Node.js. To see part one of the article please see the following Hacker News post: http://news.ycombinator.com/item?id=5175913
At first I did not understood, what it had in special, until I figured that it was the fact that it used your phone contact list, thus taking out the boring task of managing that, and making adding people to your list easy as finding someone phone number.
Yet, I would not use it as my primary messenger (neither Facebook), because of how they are tied to something in particular (phones, Facebook) and thus allow less flexibility in where or how I use them.
I can't even get my friends to click invitation links to pre-baked apps.
Disclaimer: I work at Tango.
I don't have a problem with it, although it would've been nice if the title had made it clear that it was a primer.
The main article is about creating a Google Talk bot with Node.js so if you want to create something with XMPP then please have a read through of that article: http://news.ycombinator.com/item?id=5175913
Also when I submitted this article to Hacker News I entitled it "A short history of XMPP and Jabber" so I am not sure how or when it got renamed.
Also, I wonder what networks can access the original Jabber network beside G-Talk, anyone here has a clue on that?
I really like G-Talk, and I wish it could interoperate with other interesting IM software.
The use of 'recently' made me do a bit of double take.
http://slashdot.org/story/05/12/16/070245/google-jabber-and-...
Around the time I actually wrote the article (many months before it was originally published in .net magazine) there had just been a libjingle release and I was told at the time it was a new thing to have this available to 3rd party developers.
(It doesn't matter, but I also raised an eyebrow and started looking for the date on the blog entry when I read that sentence.)
This is quite a mess.
Wikipedia may say 2005 but it did not make the draft status that the article refers to until June 2009, which we can all agree is a lot more recent.
Using XML these days seems too heavy weight.
XML's extensibility is one of the reasons that XMPP has so many XEPs. A JSON-based protocol would need a central registry or some kind of namespaces to achieve the same thing.