What Google Says:
A robot is an automated participant on a wave. A robot can read the contents of a wave in which it participates, modify the wave’s contents, add or remove participants, and create new blips and new waves. In short, a robot can perform many of the actions that any other participant can perform.
You can use a robot to perform actions such as the following:
- modify information in a wave
- interact with participants in a wave
- communicate and synchronize information in a wave to the outside world or to other waves
- access or modify state in a third-party (such as a database)
You can do many more things with robots than those listed here. Additionally, as we expand the capabilities of the API, robots will be able to take advantage of these new features.
What it is behind the curtains:
It’s a web service.
Basically robots observe what you’re adding to the wave, send it to a website, and returns the result to the wave.
In other words, almost everything that a robot can do can be done by a user opening another browser window or tab and directly accessing that website. This means that for a robot to be useful, it must give the user a reason not to open that new browser window/tab and access the service directly.
There’s also the problem related to how blips are modified by robots, as mentioned in yesterday’s post.
Robots become much more useful when paired with Gadgets because they’ll have more control over how the result is displayed in the wave. But of course, the combination is still prone to the problems related to Google Wave’s asynchronous nature.
What Google Says:
Gadgets have emerged as the standard way to embed non-trusted code in Google web applications. In the Wave API, gadgets are the main mechanism for third party developers to change the look and feel of waves.
Most of the gadgets written for non-Wave containers can run in Wave. However, these gadgets are not able to take advantage of the live, multi-user environment that is Wave. The main difference between Wave gadgets and non-Wave gadgets is that a Wave gadget lives in a wave and can interact with the wave. Wave-aware gadgets can:
- Access more granular state management
- Find out the current viewer and all of the other participants on the wave
- Work harmoniously with the Wave playback mechanism
Wave gadgets typically aren’t full blown applications, but small add-ons that improve certain types of conversations. For example, a wave might include a gadget that lets wave participants vote on where to go to lunch.
What it is behind the curtains
It’s an embedded HTML page.
That, of course, is a lot. However, without HTML 5, that is also limited compared to what you could do with stuff like Flash and RIAs. To even things out (and make things more Wave-y), Gadgets come with the big double-edged sword:
On the surface, Google Wave looks shiny.
Below it, well… it’s actually pretty bland.
Google Wave testers already know this. Chatting is a clumsy task because of the constant movement of the wave, and the inability to disable the as-you-type updates to the wave makes using it as an e-mail-like platform kinda awkward. The extensions are also quite mundane when you see through their facade.
However, I think it’s still too early to say if Google Wave is just going to be a flash in the pan. Look at Facebook’s application platform. It’s about as bland (maybe even blander) than Google Wave’s extension platform and yet millions of users keep using Facebook apps.
I guess only time will tell whether Google Wave will take off…