A couple of days ago I finally had my Google Wave sand­box account. Given that I just fin­ished devel­op­ing my very first robot, I thought I’d share some impres­sions on the whole thing. From the user-​side, things are far from being ready. Some impor­tant fea­tures are still miss­ing, just to name one you can’t remove user from a wave once they joined (or, alter­na­tively, there’s no way to ignore a wave). Indeed, given that I joined sev­eral waves to try other people appli­ca­tions, I’m get­ting con­tin­u­ous noti­fi­ca­tions. But anyway, the whole thing is to me like a great devel­op­ment play­ground where I can make all the sorts of experiments.

They’ve been loyal: when you signed up the reg­is­tra­tion form, they asked you if you were com­fort­able with APIs chang­ing or an insta­ble system. That’s what you’ll find once you get your sand­box account. APIs are there but haven’t been fully doc­u­mented yet and most of your work when devel­op­ing some robot/gadget will be in explor­ing the API sources (they’re open source, yau!) or search­ing for some exam­ples on the sam­ples gallery, which is an invalu­able resource by the way.

Debug­ging is hard too, given that you can’t test what you done locally but you have to upload your code to AppEngine to see if it works (actu­ally AppEngine is the only plat­form they accept requests from, but they plan to allow every host that talks the wave pro­to­col in the future). This means that if, for exam­ple, there’s some typo in the code (i.e.: appendText() rather than AppendText()), you’d know only by look­ing at the AppEngine logs.

Be pre­pared to expe­ri­ence casual fail­ures too. Some­times your robot is work­ing cor­rectly and is receiv­ing the whole wavelet (which is the whole con­ver­sa­tion thread), but its response is ignored by the server for some unknown cause.

Anyway, even though there’s still some clear work in progress, I felt like the whole thing was quite excit­ing both from the user and as the devel­oper point of view. The event model they thought for the exter­nal appli­ca­tions per­fectly fits the nature of The Wave and gives room for some nice asyn­chro­nous appli­ca­tions. Hope­fully, we’ll meet on Google Wave soon.