Digesting Google Wave

posted by
pete

I got an odd sense of deju-vu while watching the 90 minute Google I/O conference keynote video where they announced Wave, a next-generation communication platform that many people are rightfully excited about. The last time I felt this much gee-whiz factor excitement was at a Microsoft Developer Days event in 1996 when my dad and I saw a preview of Visual InterDev, the amazing new “server side” partial-GUI development environment.

Up until that point I’d made a bit of a name for myself by creating a bridge between Visual Basic and IIS, the Microsoft HTTP server. Imagine a situation where every call to a form submission called a function in a single-threaded COM object running in Transaction Server, and you can understand why seeing what was quickly re-branded as Active Server Pages (or ASP) was like confirming the existence of a higher power.

To their credit, ASP really did change everything. I used it every day of my professional life until a scary run-in with .NET in 2004 sent me packing for the Ruby hills.

There’s certainly a lot to like about Wave, and Google should be applauded for being willing to work on the plumbing of the Internet. Unlike the typical Microsoft strategy of giving everything a new name which they’ll be rushing to deprecate in 30 months, Google is making it crystal clear that Wave is a web application, a platform, and a protocol. They seem genuine in their desire to make it open source, and after attending a (very nice) community information session Microsoft hosted and hearing about the legal wrangling required to do something as simple as submit bug patches to GPL projects, it’s clear that this could never have come out of Microsoft.

And that’s a shame, because they were undeniably the pioneers of Ajax. Anyone else remember using Outlook Web Access back in 2000?

Microsoft could have had this victory. We could easily be talking about Microsoft Wave right now; of course, it’d all be based on Exchange and we’d have to install .NET and the licensing for governments, schools, and non-profits would be very gracious.

That said, I feel a certain raw cynicism as well. Don’t get me wrong; I can’t wait to fire this app up, and I am kicking myself for not trusting my instinct to attend I/O. I could be hacking on the beta API right now!

It’s just that while they deserve credit for executing this, we as a developer community should be slightly ashamed that it’s taken this long for it to happen. There’s been so much petty in-fighting over our tools (web frameworks, authentication, Javascript libraries), business and marketing models (endless discussion about the relevance of Twitter and the Long Tail and the decline of intellectual property) and hyperbolic wank over whether your code is safe “in the cloud”. How come it never occurred to anyone that a generic server push implementation layer would have enabled a large part of the innovation seen in Wave several years ago?

Given how many PhD’s they had working on the genuinely hard federation and concurrency issues, the real accomplishment is in the subtle UX touches that make the end result work exactly how you expect it to. The theme at Emerging Tech a few years back was magic. This counts as magic specifically because if you showed Google Wave to a person just learning how to use a computer, they wouldn’t be impressed in the way that we are. It’s just the next major iterative step, and once the shock wears off then the real hard work can get started to make the whole damn web speak in the same language.

Remember the last time this happened? The Facebook Applications Platform. They tried to build a walled garden full of spammy quiz apps and if I’m not mistaken, on the whole that project hasn’t been a home run. Google Wave feels fundamentally different, and that’s because they are fighting the good fight, instead of trying to lock in their users.