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.
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:
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.
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!
- Posted in: Uncategorized