The Fourth Wave

Some 4000 Google I/O attendees gave a standing ovation at the end of this morning’s keynote pre-launch of “Google Wave”. Google I/O attracts a reasonably savvy crowd, and this was not a Reality Distortion effect. What Google announced this morning is significant. It is the first candidate killer application for the Fourth Wave of Computing.

Google Wave is a smooth hybrid of email, instant messaging, photo sharing, discussion forums, wiki, and document management. It is best described in the words of the brother of its lead developer, who also delivered the bulk of the keynote:

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.

Lars Rasmussen, The Official Google Blog, 5/28/2009

The features are impressive, and the demonstration was awe-inspiring. We were treated to a symphony of technologies. What Google is cooking up is a blend of technologies and trends, and is not entirely simple to dissect.

First, let us relate this to the cloud computing revolution. According to my back-of-the-envelope calculations, Google may have upwards a million servers in their datacenters. They are part of a trend towards the world having just a handful of “computers” – controlled by a handful of (for-profit, privately controlled, loosely regulated) corporations. Besides Google, the contenders are Amazon, Yahoo, and Microsoft.

Four Waves of Computing

The above figure is how I see it. We have gone from big-box, to big-box-with-terminals, to boxes-of-all-sizes, to the cloud. The cloud is new and a little harder to summarize, but I think the essential part is that it’s lots of snippets of code, talking to huge data sets (where reads are cheap and writes are expensive), and lots (and lots) of clients.

The notion of “massive distributed” is still being anachronistically bandied about, but this will be phased out, and we’re not likely to refer to these systems in any of these terms in the future. Since we’re only talking about a handful of systems (probably just three), and they will all have slightly different behaviors, and they’re not likely to happily play with each other, we will end up referring to them by individual proper nouns – analogous to how we today think of “Windows”, “Mac”, and “Linux”. Individuals, companies, and institutions will have to chose which system they primarily align themselves with.

Google App Engine shows the way most clearly for this future. There are many ways that GAE is different from some flavor of hosted computing, but to me one of the most striking is ramp-up time. GAE essentially limits you to the top of the abstraction layers. Think of it this way:

Virtual Server vs GAE

A traditional server (e.g. a LAMP setup) is shown on the left. Everything that needs to start in some way is in red. If I’m running on a virtual server in the “cloud”, and I need a new server, I need to boot it up. That takes about 5 minutes, give or take.

Now consider the stack on the right. Here I’ve restricted you to using just one flavor of application code – say, Python, talking to the Google GAE API. The only thing that needs to be “started” is to load some data into the interpreter. And odds are good that that data is already in the cache. The response time for this is about 0.05 seconds, give or take.

The difference in response time is thus about a factor of 5000. In other words, the GAE-style “cloud” ramps up (and down) compute service upwards of four magnitudes faster than a traditional server approach. That is not a quantitative difference, that is a qualitative difference.

This is the key behind Google Wave working. The real-time communication and scalable usage model presupposes a GAE-style cloud.

There’s a lot more to say about this topic. In particular the increase in performance in Javascript to the point where it can be compiled to as if it were a VM comes to mind.

But I need some sleep. Let me close for the night with a shout-out to my Nordic brethren: the Rasmussen brothers join the list of highly distinguished technology innovators who originally come from Denmark. The list includes Bjarne Stroustrup (developed C++ while at Bell labs), Anders Hejlsberg (was the original author of Turbo Pascal and the lead on the team that developed C#), Janus Friis (co-founded KaZaA and Skype), and Rasmus Lerdorf (creator of PHP). So not only did most of Wave 2 code relate to Danish innovation (C++), and Wave 3 (C# and PHP), but now also Wave 4!


  1. Dr. B

    I am looking for a few good developers who attended the conference and would like to get paid applying GW to a project. Can you recommend anyone with current access to the GW sandbox?

    [PSM] Sorry to be so slow in catching up on moderating comments. But the only people I know with GW sandbox access have their own projects going.


  2. Here’s my personal story on this event. I am glad that it moved you. You are correct, it was not a reality distortion field, it was real. I was in the audience, I’ve been to many many launches and demos over the years and given a lot of presentations too. The Google Wave launch demo was just awesome, you could feel the excitement in the room. It wasn’t just that the product was exciting, it that it was like a personal victory for a lot of the people there. It was like a proof that HTML5 can do that, a web app can kick ass, there *can* be a really novel way to communicate. As the demo progressed, I could sense that people were rooting for the Wave team, sharing in their accomplishment, not just being impressed at what someone else had done or was trying to pitch to them.

    So, I formed a plan. At one of the last applause lines of the presentation, I stood up. I just stood there. I motioned for my friend sitting next to me to stand up too and he did. No one else that I could see was standing up. The applause was a strong one, but it was coming to an end. I figured that I didn’t make it, so I started to sit down again. Out of the corner of my eye, I saw one other guy far to my right stand up. I stood right back up again. A couple other people in my row stood up. Then, everyone stood up, they were just waiting for a “first follower” to show them that it was OK to do it. It was like I was the shirtless dancing guy:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: