Google Wave: A New Internet Communication

by Paul Arnote (parnote)

A new wave is rolling towards your shore. And it's likely to completely change your whole concept of communication via the Internet. It's called Google Wave.

I recently received an invitation to participate in the Google Wave Preview program from my father-in-law, who works for a fairly good sized Internet provider in central Missouri. He and I have had conversations about Google Wave before, when we've gone to visit my wife's hometown, but this is the first time I've actually had the chance to see, beyond mere concepts, what all the buzz is about with Google Wave.

Google Wave's premise is simple, yet ambitious. Email, as we know it and use it today, was created over 40 years ago, before there were social networking sites, blogs, wikis, instant messaging, and many other communication tools we now tend to take for granted. It is one of the most popular and most used of all Internet applications. Google decided to step back and ask, "What if email were created today?" The result they came up with was Google Wave.

Google Wave was rolled out in a public reveal at the Google I/O Developer Conference back in May, 2009. In fact, you can watch the entire announcement, a one hour and 20 minute video, online. Google Wave takes advantage of the proposed HTML 5.0 standard, and attempts to show what is possible within the web browser with the HTML 5.0 environment enabled. The early public reveal by Google was so that they could get developers onboard to create tools and components for Google Wave, using the Google Wave APIs (Application Programming Interfaces). In this way, it is hoped that there will be even richer content for Google Wave when it is rolled out later this year.

Google Wave development was started in 2007, and is written using the Google Web Toolkit. The Google Web Toolkit allows you to write HTML 5.0 applications in Java. Initially codenamed "Walkabout," the Google Wave project started out with a tough set of questions. From Google Software Engineering Manager Lars Rasmussen's blog, those questions were:

  1. Why do we have to live with divides between different types of communication — email versus chat, or conversations versus documents?
  2. 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?
  3. What if we tried designing a communications system that took advantage of computers' current abilities, rather than imitating non-electronic forms?

Engineered by Lars and Jens Rasmussen, the creators of Google Maps, and headed up by Lead Product Manager Stephanie Hannon, Google Wave is much more than just email. It's a robust, open source system that allows realtime conversations with any, or all, of your contacts at the same time. It combines what we traditionally know as email with instant messaging and chats, and allows the user to include rich text content, maps, pictures, videos, and so much more. In fact, Lars Rasmussen calls it a "communication and collaboration tool."

Traditional email follows, more or less, the "snail-mail" model. You type in a message to a user (or group of users), hit send, and wait for a reply. If someone joins the conversation later on, the earlier messages in the "thread" aren't typically available to the user who has joined in, later in the conversation.

Google Wave changes that model, significantly. While you are participating in a wave, you can see what the other invited members of the wave are saying, at the same time as you type it, in real time. You can comment or reply in the middle of a wave. And, to top it off, you can invite other users to participate in the wave, and the entire wave is then open to them, and they can add to the conversation, even parts of the conversation that occurred before they were invited or added.

Wave differs from traditional email in that you start out with the definition of a conversation, and users participating in that conversation. Those users, or participants in the conversation, can jump in at any point. The entire conversation is hosted on a server, and the users share equally in that conversation.

According to Hannon in the roll out video, because it is a hosted conversation, it's easier to keep track of structure. With traditional email, you can hit reply and manually hand edit the quoted text to insert your comments. With Google Wave, however, you can tell the server to simply "split" the original message and insert your comments at the appropriate spot. Overall, not too terribly different from traditional email, but (at least in the demonstration at the developer's conference), easier to do and to follow, since it ends up structured much more like a real conversation might be.

When you reply to a wave, your message appears instantly on the screen of the other members of that wave, if they are logged in and viewing, as you type it. There is a feature, still under development and not yet implemented, that allows you to type in your message without it being displayed on the other participants screens until you click on the "Send" button. This is good for those who may either be slow typists, or those who are not very good at spelling. And, speaking of spelling, Google Wave sports an on-the-fly spell checker, called "Spelly," that will correct many common spelling errors automatically, based on the context of what you are typing.

If a user is not logged in at that particular moment, the updated wave will be highlighted in bold type when the user returns to Google Wave, indicating to them that the wave has been updated. They can then re-open the wave, and continue the conversation. I know what you're thinking. "Nothing too revolutionary here." But wait, because it gets better.

Adding users to a wave is as easy as drag-and-drop. Drag a user from your contact list to the user list in the wave, and that new user is added to that wave instantly, and they have full access to the entire conversation, as if they had been there all along. They can then contribute to the conversation as if they had been there since the beginning, including all parts of the conversation from before they were added.

A feature of Google Wave, called Playback, allows new users (those invited to a wave after it has already begun) to see how things progressed to their current state. By hitting "Playback," the new user in the wave will be able to see, message by message, reply by reply, how things have gotten to their current state. They can see where the wave has been split and "sub-conversatons" have been added, in the order in which they occurred. The new user can add their reply to any part of the previous conversation, and the wave will be marked as updated in the other users' Google Wave screen by being displayed in bold face type.

There is even a feature of Google Wave that allows you to create what they term a "private reply." With a private reply, not everyone in the wave can see what you type. Instead, only those you designate or choose can see your reply. Say you, your mom, and your sister were chatting about plans for Christmas dinner. You and your sister want to talk about gift ideas for mom. You and your sister can discuss gift ideas for mom privately, between only the two of you, without that part of the conversation appearing on mom's screen. So mom has no idea of the private conversation you and your sister are having, during the discussion about Christmas dinner.

Google Wave supports drag-and-drop from your desktop. Say you want to share photos with other users in the conversation. All you have to do is open the folder containing the photos you want to share, and drag them into the open wave window. The thumbnails of those images appear on the other users screens before you have fully finished uploading the image files. Currently, the drag-and-drop feature is supported by Google Gears, but Google has applied to the proposed HTML 5.0 standards committee to make this a supported feature of the new HTML standard.

The wave window will then show a button at the bottom of the screen, allowing you to download the photos of the current wave. When you select it, the button applies the action to all of the photos in the wave, allowing you to download all the embedded photos. This makes it easy to create a collaborative photo album, with photos from all participants of the wave. Once you (collectively) have shared all of your photos with one another, you can extract the photos from that wave and insert them into another wave, that you can share with yet others, without the need to share all of the conversation that took place while you were creating the collaborative photo album.

Yet another nice and innovative feature of Google Wave allows for you to embed the wave on your blog or website. As the wave conversation is updated, so is the blog or web site entry. Visitors to your blog can comment, and their comments are added to the wave. Once the wave is published to a blog, all participants in the wave are notified by a message bar at the top of the wave of it being published. This is a nice feature, since you may not want particular comments or feelings about a subject to become publicly known.

Similarly, you can reply to comments on the embedded wave right from Google Wave, without having to go to the blog site to post your reply. The conversation can continue from Google Wave, and the blog is instantly updated with the new material in real time.

Just as you can share photos and create a collaborative photo album, you can do the same thing with documents. You can embed a document into a wave, and those you invite to the wave can edit, contribute, and discuss the document as a whole, or in part. Comments can be embedded into the document, allowing you to discuss individual points within that document. Google Wave provides a "widget" which allows you to collapse all comments, so you can read the document without it being broken up by comments on the screen.

You can also use the playback function of Google Wave to go to any previous revision of the document, and it will also show who, from among the wave participants, made specific changes to that document. This will allow you to copy a document at any point through its collaborative changes, and save that document at that stage.

What's even more amazing, and what Lars Rasmussen termed as one of the most difficult things that the team had to solve, is that multiple users can edit the same wave at the same time. In the roll out at the developer's preview, four users were shown editing the same wave at the exact same time. And all changes were instantly reflected on all the other users' screens. And even more astounding, those edits can occur, simultaneously, in multiple languages. Using Google Translate, those edits are instantly translated to the end user's native language. In the demo, simultaneous edits were occurring in English, Chinese, and Hebrew.

Once you get into using Google Wave, you will want to organize your waves in some fashion. Similar to email, you can organize your waves into folders. Or, you can organize your waves with tags, and those tags apply to everyone who has access to those particular waves. So even if you didn't start the wave and didn't have the opportunity to give it a clever title, you can give it a clever tag, which will be applied to the wave for all users who have access to that wave.

Even more clever, is that you can use waves to organize waves, using what the team calls "wave links." All you do is create a wave, and within it, embed links to other waves. Clicking on a wave link takes you directly to that wave. When you are finished, click the Back button, and you are taken back to the first wave that contains the wave link. And, the wave links are inserted just like pictures are — drag-and-drop the wave from your search panel into the new wave. It couldn't be any easier.

Speaking of the search panel, it behaves in a dynamic fashion, much as all of Google Wave does. Say you are searching for waves over a particular subject matter. While you are choosing which waves to include and create wave links from, a new wave comes in about the same subject. Your search panel is updated instantly to include the new wave that just came in. All without the need for you to refresh your browser window.

Remember "Spelly," the spell checker we talked about earlier? Well, Google Wave also sports two other related cousins. First, is "Linky." Linky automatically recognizes links as you type them, and highlights them as links for you, without any additional intervention from you at all. Second, is "Searchy." Searchy allows you to launch up a pop up window with a Google search bar at the top. You type in your search term or phrase, and a list appears below of pertinent web content. When you click on the link in Searchy, the link is automatically places in your wave. If the content is a picture, a thumbnail of the image is placed in your wave, which other users can click on to view the full size image.

Of course, Spelly, Linky, and Searchy are all possible in Google Wave via extensions. And, extensions is what the Google I/O 2009 Developer's Conference was all about. Google hopes to attract many more developers to develop extensions to Google Wave, in the hopes that users will have an even richer experience when it is finally opened up to the public.

Developers have access to external APIs of Google Wave, which contain most of the functions of the internal APIs. "Tools" created with the external APIs are called "gadgets." These gadgets can help users embed content from social networking sites in waves. They can also help create a poll of sorts, with a tool called the Yes-No-Maybe gadget. With this, say you and a group of friends are wanting to arrange a dinner at a nice restaurant that evening. So, you send out your wave to a group of friends, asking them to meet you for dinner at Hell's Kitchen at 7 p.m., and you want to know who is able to go. By using the Yes-No-Maybe gadget, your friends can reply Yes (they can go), No (they are unable to make it), or Maybe (they might be able to meet you for dinner).

And, since Google Wave has been created by the same creators of Google Maps, it only makes sense that you can also include Google Maps in your waves. Users can do this with a gadget, created using the external APIs. Client side extensions are called gadgets, while server side extensions are called Robots.

Robots allow you to place forms in your wave, and those forms can be filled out collaboratively. You can also use the robot named "Polly" to create polls. The possibilities are astounding. "Tweety" is an extension that allows you to tweet (on Twitter) directly from Google Wave.

Just as users can email one another, regardless of who their Internet provider is, Google Wave also aims for this same functionality. They have developed an open protocol that allows users to communicate with one another, regardless of who their Internet provider is. It is called the "Federation Protocol," and can be freely used by anyone — even those in direct competition with Google. This is in stark contrast to when Instant Messaging clients burst upon the scene a dozen or more years ago. Then, none of the competing Instant Messaging clients could talk to one another. It is the hopes of the Google Wave team to avoid this type of situation, and allow interoperability between all systems using the Google Wave Federation Protocol.

Additionally, Google Wave can be run on mobile platforms. When it is rolled out, Google Wave will run on the Apple iPhone and on devices running Google's Android. So, you will be able to "do the Wave" while you are on the go.

Conclusion

Google Wave is not email. Google Wave is not Instant Messaging. Google Wave is not chatting. Instead, Google Wave represents a radical shift in the Internet communication paradigm. Users will have to think of communication in a whole new fashion. And this is where the challenge comes in. Users will have to possibly "un-learn" old habits, and think of new ways to communicate via the Internet. Even the Google Wave team admits to initially being constrained by the old ways of doing things, simply because they were so accustomed to doing things in that manner. The same challenge faces you, as Google Wave rolls out to the public.

The Google Wave Preview is currently by invitation only. If you already have a GMail account, you already have completed one of the prerequisites to join in on the fun. Currently, not all features are implemented (for example, I can not yet change my profile picture; I receive a Server Error every time I attempt to change my profile picture.), but you should be able to get a pretty good feel for the direction that Google has planned for Google Wave.

Now all you need is an invitation to join in on the fun. I do not yet have the capability to invite others (all invites are reportedly used up while they determine if the Preview server can handle the load), but once I do have that ability (when Google decides to expand the Preview), I'll be more than happy to send out some invitations. Alternatively, you can go to https://services.google.com/fb/forms/wavesignup/ and sign up to be let in on the Google Wave Preview. There is already quite a lot of support provided on the Google Wave Support pages (http://www.google.com/support/wave/).

Personally, I think Google Wave is going to be very successful. And, since Linux users appreciate rich and robust software — and have, in fact, come to expect it — Google Wave is definitely for you. The time is very near to ride the crest of the wave that Google Wave will create. All others are likely to be left behind, in the tidal wash.