Friday, May 29, 2009
Back in early 2004, Google took an interest in a tiny mapping startup called Where 2 Tech, founded by my brother Jens and me. We were excited to join Google and help create what would become Google Maps. But we also started thinking about what might come next for us after maps.
As always, Jens came up with the answer: communication. He pointed out that two of the most spectacular successes in digital communication, email and instant messaging, were originally designed in the '60s to imitate analog formats — email mimicked snail mail, and IM mimicked phone calls. Since then, so many different forms of communication had been invented — blogs, wikis, collaborative documents, etc. — and computers and networks had dramatically improved. So Jens proposed a new communications model that presumed all these advances as a starting point, and I was immediately sold. (Jens insists it took him hours to convince me, but I like my version better.)
We had a blast the next couple years turning Where 2's prototype mapping site into Google Maps. But finally we decided it was time to leave the Maps team and turn Jens' new idea into a project, which we codenamed "Walkabout." We started with a set of tough questions:
Why do we have to live with divides between different types of communication — email versus chat, or conversations versus documents?
Could a single communications model span all or most of the systems in use on the web today, in one smooth continuum? How simple could we make it?
What if we tried designing a communications system that took advantage of computers' current abilities, rather than imitating non-electronic forms?
After months holed up in a conference room in the Sydney office, our five-person "startup" team emerged with a prototype. And now, after more than two years of expanding our ideas, our team, and technology, we're very eager to return and see what the world might think. Today we're giving developers an early preview of Google Wave.
A "wave" is equal parts conversation and document, where people can communicate and work together with richly formatted text, photos, videos, maps, and more.
Here's how it works: In Google Wave you create a wave and add people to it. Everyone on your wave can use richly formatted text, photos, gadgets, and even feeds from other sources on the web. They can insert a reply or edit the wave directly. It's concurrent rich-text editing, where you see on your screen nearly instantly what your fellow collaborators are typing in your wave. That means Google Wave is just as well suited for quick messages as for persistent content — it allows for both collaboration and communication. You can also use "playback" to rewind the wave and see how it evolved.
As with Android, Google Chrome, and many other Google efforts, we plan to make the code open source as a way to encourage the developer community to get involved. Google Wave is very open and extensible, and we're inviting developers to add all kinds of cool stuff before our public launch. Google Wave has three layers: the product, the platform, and the protocol:
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.
So, this leaves one big question we need your help answering: What else can we do with this?
If you're a developer and you'd like to roll up your sleeves and start working on Google Wave with us, you can read more on the Google Wave Developer blog about the Google Wave APIs, and check out the Google Code blog to learn more about the Google Wave Federation Protocol.
If you'd like to be notified when we launch Google Wave as a public product, you can sign up at http://wave.google.com/. We don't have a specific timeframe for public release, but we're planning to continue working on Google Wave for a number of months more as a developer preview. We're excited to see what feedback we get from our early tinkerers, and we'll undoubtedly make lots of changes to the Google Wave product, platform, and protocol as we go.