Google Wave Re-evaluated

Several months ago, I posted an evaluation of Google Wave that wasn’t too positive.

Since then, the Wave interface has had several minor, but very important improvements that make it much more pleasant to use. If there were more people using it, I would definitely view it as a viable alternative to e-mail and possibly even instant messaging. It still needs some serious usability engineering (it will never become mainstream unless they overcome the modal editing, for one thing), but I believe Google’s wave client has promise.

However, I no longer view wave as an alternative e-mail and IM. I’ve been considering it lately, as a replacement for HTTP. That’s right, the entire web. The current version of the web is highly interactive and realtime. HTTP was not designed for this. It was designed as a set of static resources intertwined with links. Then Javascript came along, and AJAX. The latest is a host of HTTP push technologies such as Comet.

These technologies allow the server to send information to the client without the client having to request it. A clever hack keeps an HTTP connection open for long periods of time so incoming data can be pushed across it without the client having to make a new request. Does this sound brilliant or what?

You’re doing it wrong! If our applications are now highly interactive systems that need to both push and pull data to and from the server, HTTP is not the protocol to use. In my opinion, these push technologies are messy. No, not just messy, but dirty, filthy hacks intended to force a system to be used in a way that is the opposite of what was designed.

No, if we are developing web applications these days that require two-way communication pipes (and we are), we need a two-way protocol.

Enter Google Wave. The Wave federation protocol is exactly that: a set of extensions to the two-way XMPP protocol. Wave is not a terrific solution for hosting static content, but static content is a rare commodity these days. Wave provides an ideal platform for most of the common activities people interact with on a daily basis. It already gives us chat, wiki, document editing, and e-mail like functionality for free. With a bit of effort, it can give us a blogging type of functionality (with comments), using public waves.

A couple of simple robots could replace Twitter. Wave doesn’t have support for “following” a user. You have to be added to specific waves. However, it would be trivial to write a robot that a user adds to any waves they want to have subscribed followers added to. “Retweet” functionality should also be fairly easy to implement. And this would be implemented on a distributed system, so there would be no more of those extremely irritating “twitter over capacity” messages.

Wave even solves the mighty facebook privacy issue. Only share your wave with those people you explicitly want to view it. Current policy is to post your ideas on Facebook public to all your friends. But a massive paradigm shift is occurring, as more and more people accidentally include their parents, employers, or spouse in conversations that were meant for other audiences. People are clamoring for Facebook to make it trivial to SELECT who we share information with. Guess what? Wave already does this.

In spite of all this, I’m still not on the Wave bandwagon. I don’t insist or even suggest that anyone should start using. The current browser-based client is complicated and intimidating and has a large learning curve. In today’s world, people expect things to be as easy to use as Google Search or Twitter. Wave is not. The currently available wave client is more complicated than e-mail or instant messaging. It’s not going to take off.

I believe there is potential for simpler clients to be designed. I’m finally understanding why Google has focused on solidifying the wave server and protocol, rather than improving the public facing client. They are the kind of technologies we should be looking to in the future, not HTTP. Google Wave may never take over the world, but at some point, something will have to replace the static HTTP protocol. Maybe wave, maybe HTTP 2.0 will have extensions for two way communication, maybe an entirely new protocol yet.

Comments are closed.