December 20, 2014

Google I/O 2009: A Wave of Innovation

google_io_091Next up in the Google I/O 2009 is the second-day keynote. Android was tangential, but the announcement was pretty big, so forgive me for taking up some bandwidth here.

The kickoff was, strangely enough, on LEGO. Yes, the bricks. Everybody got six of the classic rectangular bricks, and there was a ~10 minute presentation from LEGO itself on the history of community involvement with LEGO Mindstorms.

Next, the day’s announcement: Google wave. This is a personal communications and collaboration tool, built as an HTML5 app.

A “wave” is a bit difficult to describe – it is a bit like an online forum (tight management of threads compared to email), but you can reply to messages or parts of messages, and if multiple people are actually in the wave at the same time, updates are transmitted in real-time, a la online chat/IM. You can also do private replies, which sets up a branch of the conversation with a subset of the participants. You can also drag-and-drop photos into a conversation (though this feature requires Gears).

A wave does not necessarily have to only reside on the Google wave site. You can use APIs to embed a wave in an existing Web site or blog, much like you can embed a Google Map. You even get much of the wave functionality in the other site, such as being able to post replies and see those in real time. And people who join the conversation from a site can later continue the conversation from their “wave client” (i.e., the Google wave site).

Richer integration is also possible, such as blending a Web sites own “contacts” (demoed: friends in Orkut) to add them to a conversation, or to embed wave-based search.

The wave client is available for Android and iPhone, apparently via browsers (vs. native clients).

A wave can be edited by all participants  – not just replies, but full-fledged editing of existing material. Hence, a wave can also serve in the role of a wiki page. Everyone participating in the wave will be notified of changes, and you can “play back” the edits to see how the document changed over time. You can copy the current version of the document – sans any inline conversations – into a fresh wave. It even will have some version control-style features for branching and merging.

Of course, it has all the typical organization tools to track all these waves: tags, folders, saved searches. Searches are even real-time – if a new wave matching your search shows up while you are looking at the search results, it will show up at the top. You can even use a wave to link to other waves, creating a table of contents, using drag-and-drop. This further accentuates the wiki feel to waves.

Beyond the integration APIs mentioned above, there is are extension APIs available. You can create “robots” that participate on par with humans, but run on servers to provide functionality. For example, spell-checking and auto-linking are really handled by robots that watch the real-time text entry and make corrections or add hyperlinks. Developers can create their own robots, create gadgets can behave as live elements of a wave, or integrate waves with other systems (e.g., Twitter, issue trackers). They even demonstrated a real-time translator to enable multi-lingual discussions.

As one person tweeted: Google wave is the real-time Web – no more, no less. Or, to look at it another way, Google wave got a better response than free Android phones.

As this is done (mostly) with HTML5, it works with HTML5-compliant browsers. They demoed using Firefox, Chrome, and Safari.

They are also enabling federation, so other organizations can run their own wave systems and the systems can interoperate (e.g., share users, share waves, real-time updates).

Right now, it’s in a developer preview release, to be publicly launched sometime later this year. Attendees of Google I/O are getting accounts; no word if anyone else will have access or when. This is being open sourced, and the protocols are also being released on an open basis. The whole app is written using Google Web Toolkit, so the open source release should be in Java.

In terms of Android, again, Google wave will work on the Android browser, and I can certainly see potential for Android hooks into wave itself for mobile-specific activities.

To learn more, wave.google.com should have a copy of the keynote available sometime in the near future.