> In fact Google Wave was a fantastic and radical attempt at decentralizing common use cases such as email, instant messaging, social networking, etc. Unfortunately this project failed to gain traction due to various reasons.
That’s a pretty weak summary. The product didn’t “fail to gain traction”. It pretty much failed to work in a basic way, at all.
It was the broken technical design decisions and broken technical implementation of Google Wave that doomed it to death, not any problem on the users’ side.
Also, anyone who says that Google Wave was decentralized, as implemented, is kidding themselves. That was Google’s marketing hype (and possibly even their eventual goal), but in practice none of the parts that would allow any kind of server support outside of Google were ever actually delivered.
There was an incredible amount of hype for Wave from Google, and initially there was a great deal of excitement from users and developers outside of Google, when it was first announced and when the first users started on it. And then as they let more people in and as time passed, the technical infrastructure was completely unable to scale (either with number of users or with size of individual conversations), and it became apparent that the web client was a buggy mess that would only work with small conversations involving a small number of people, and the servers couldn’t handle rapid adoption.
The semi-technical marketing documents described how it would be open and federated, with an open protocol implementable by anyone, and would use fancy modern algorithms (operational transforms) to handle multi-party updates to documents in real time. As delivered though, the protocol was big proprietary binary blobs wrapped inside the incredibly verbose XML of Jabber/XMPP protocol (most of the features of Jabber were ignored; as far as I can tell it was only chosen as a wrapper to give the protocol an illusion of openness, rather than for any particular technical merits), and instead of doing any kind of fancy diffs or sophisticated operational transforms, instead the entire content of a message was re-sent to every listening client for every keystroke. The Wave web client software was a big ball of spaghetti Java/GWT code which was closed source (maybe they eventually opened it?), and so it was effectively impossible for someone outside of Google to make an interoperable server or client.
That’s a pretty weak summary. The product didn’t “fail to gain traction”. It pretty much failed to work in a basic way, at all.
It was the broken technical design decisions and broken technical implementation of Google Wave that doomed it to death, not any problem on the users’ side.
Also, anyone who says that Google Wave was decentralized, as implemented, is kidding themselves. That was Google’s marketing hype (and possibly even their eventual goal), but in practice none of the parts that would allow any kind of server support outside of Google were ever actually delivered.
There was an incredible amount of hype for Wave from Google, and initially there was a great deal of excitement from users and developers outside of Google, when it was first announced and when the first users started on it. And then as they let more people in and as time passed, the technical infrastructure was completely unable to scale (either with number of users or with size of individual conversations), and it became apparent that the web client was a buggy mess that would only work with small conversations involving a small number of people, and the servers couldn’t handle rapid adoption.
The semi-technical marketing documents described how it would be open and federated, with an open protocol implementable by anyone, and would use fancy modern algorithms (operational transforms) to handle multi-party updates to documents in real time. As delivered though, the protocol was big proprietary binary blobs wrapped inside the incredibly verbose XML of Jabber/XMPP protocol (most of the features of Jabber were ignored; as far as I can tell it was only chosen as a wrapper to give the protocol an illusion of openness, rather than for any particular technical merits), and instead of doing any kind of fancy diffs or sophisticated operational transforms, instead the entire content of a message was re-sent to every listening client for every keystroke. The Wave web client software was a big ball of spaghetti Java/GWT code which was closed source (maybe they eventually opened it?), and so it was effectively impossible for someone outside of Google to make an interoperable server or client.