Friday, July 3, 2009

Wave as a Platform


Wave is more than a product. As Lars explains:

The Google Wave product (available as a developer preview) is the web application people will use to access and edit waves. It's an HTML 5 app, built on Google Web Toolkit. It includes a rich text editor and other functions like desktop drag-and-drop (which, for example, lets you drag a set of photos right into a wave).

Google Wave can also be considered a platform with a rich set of open APIs that allow developers to embed waves in other web services, and to build new extensions that work inside waves.

The Google Wave protocol is the underlying format for storing and the means of sharing waves, and includes the "live" concurrency control, which allows edits to be reflected instantly across users and services. The protocol is designed for open federation, such that anyone's Wave services can interoperate with each other and with the Google Wave service. To encourage adoption of the protocol, we intend to open source the code behind Google Wave.

Anyone who's followed my writing knows that I'm a huge fan of simple systems with extensible architectures. So I was excited to see that the team didn't lard lots of features into the core product, but instead added new features via the Wave APIs, much as they hope third party developers will do.

One useful extension, Polly (Poll-y) lets you incorporate polls into a wave. In the wave shown below, participants are asked whether they can make it to a party. Responses appear immediately in the wave. That's the way these things ought to work! No jumping to a website to see the results of an Evite or a poll.

Google_Wave_map_yes_no_maybe.png

(I should note that the ever-prescient Jon Udell showed how to hack existing tools to similar effect in his 2001 book Practical Internet Groupware. It was one of the books I'm proudest of publishing, despite its commercial failure. It was just too far ahead of its time.)

The API has been used to build a bunch of cool extensions: Bloggy, a blog client, lets you make a blog post as a wave. When people comment, they join the conversation. Spelly is a spell-checker that uses the entire corpus of the web as its dictionary. Linky is a link-recognition engine that is clever enough to recognize that the link you just entered is a YouTube video, or a link to a photo, and give you the option to embed the target of the link into the wave. There's even a twitter client - you can tweet into and out of a wave! And of course, buggy, a bug-reporting tool that can also be a participant in a wave.

Wave can also be used as the base for interactive games. For example, here's a real-time interactive chess game in Wave:

No comments:

Post a Comment