Last night was my first to attend the Atlanta Wavers Meetup, held this month at Ignition Alley. The two presenters, Andy Thornton and Rick Thomas, both provided outstanding presentations on the basics of Wave gadget development.
The important take aways for me were finally understanding key differences between gadgets and robots and gaining some insight into how they are developed. Plus a cool new (and free) development IDE called Aptana Studio which is available stand alone or as an Eclipse Plugin. As a bonus Andy provided CDs filled with software and examples for all attendees.
So what’s the difference between a gadget and a robot? In a nutshell a gadget is a program inserted into a wave that can be used by all wave participants like voting or drawing. While a robot is a program added to a wave to perform automated tasks like making the wave public.
Installation of gadgets and robots into a Wave is very different. Gadgets are installed by entering the URL of the gadget whereas robots are installed as contacts and then added to the wave just like you would add any other contact.
Gadget and robot development are also quite different. A gadget can be written in a variety of languages like python, php, or even c#, and are simply publicly hosted web applications. Most gadgets even those written for non-Wave containers can run in wave. The main difference between Wave aware gadgets and non-Wave gadgets is that a Wave aware gadget can interact with the wave. Wave gadgets aren’t typically complete applications but rather they tend to be small add-ons that add a piece of functionality to a wave. Making a gadget wave aware starts with a declariation in the gadget specification of
<Require feature="wave" /> which serves to give the gadget access to the Wave Gadgets API.
Robots on the other hand are all created and hosted on Google App Engine, which at this time only supports Python and Java.
I’m glad to see that Atlanta has an Wave Development group. I plan to add this meetup to my calendar and attend often.