a life of coding

Monday, August 10, 2009

The Wave Way IS the Web Way

Anil Dash at Lifehacker recently wrote that Wave would face difficult adoption due to complex and rigid APIs. He says that the web has incremental upgrades, has a "weekend-sized" barrier to entry, has value independent of the network effect, and is easy to understand an explain (a duplicate of the second point, really). By comparison, he thinks that wave is big and complicated. It is my opinion that Wave applications will be similarly sized, similarly complex, and not require your friends to join at all.
He starts off by saying that Wave is composed of the following technologies:
  • Federation (XMPP)

  • The robot protocol (JSONRPC)

  • The gadget API (OpenSocial)

  • The wave embed API (Javascript)

  • The client-server protocol (As defined by GWT)

and that "combining all of these pieces would just be the starting point" to development. This sounds to me like claiming that developing a Google Maps application involves working with NavTeq and writing tile rasterizers, or that making a website requires writing an OS, a web server, and a web browser. Here's what people will use to develop with Google Wave:
  • Make a wave view appear in your web page via the embed API (Javascript)
and / or
  • Make a view or interface in Wave using the gadget API (OpenSocial)
and / or
  • Provide outside data or services to Wave with the robot API (JSONRPC)

All of them will have demo code that you can understand "in a weekend on your couch with a beer", or however else he thinks that people develop Web 2.0 apps.
Dash instead advocates a different API that does actually require you to host your own servers and federate over XML-RPC. The reasoning is that its easier for people to write their own server with XML-RPC than XMPP. XML-RPC is less efficient than Jabber (XMPP), so for intensive applications, should we be worried about performance? From the pushbutton page:
Scaling issues? There will inevitably be some learning to do about how to scale the resource-intensive hub layer of a Pushbutton system. But because the hubs live on cloud systems that make enormous amounts of computing resources easily available, because the coders creating the reference implementations of the hub software have great experience making web-scale systems, and because it's relatively simple to introduce new hubs as needed, this will likely not be a gating factor for adoption of Pushbutton. Worry? No

I think that last statement should read, "Worry? YES". Instead of using a properly written, efficient server, we should all run home brew, inefficient servers on huge clouds, because computing power is free! Google is going to release the Wave server open source, and its going to be really easy for you to run theirs on your hardware. Web programmers don't worry about writing web servers, and Wave programmers should not worry about writing a Wave server either.

Wave Is The Web

Wave actually is the web, and people should stop comparing it to email. The Wave interface that Google demonstrated was a web page. It communicated with the browser via AJAX. A Wave interface element ("gadget") can be embedded into any web page, providing immediate functionality to anyone visiting that page, no account required. You will get additional functionality by creating an account, but there is still inherent value in receiving fresh data, and interacting with services in real-time, anonymously. There is no intrinsic network effect at play here. I predict that Wave is going to show up embedded in web pages everywhere in the form of live Twitter feeds and real-time collaborative features. No one has to know, they just keep doing what they're doing.


Post a Comment


Create a Link

<< Home