Gadgets are small applications, general with an UI, which perform a very specific task. In the Java world, for example, they are known as applets, and were very popular when Java started. However, due to poor Java performance, applets never become very successful and eventually failed. The attempt of bringing RIA applications to the browser world was postponed till Ajax came into play.
Google gadgets is Google approach to gadgets, and it comes in two flavors:
- Google Desktop Gadgets. Features a google-like search engine for the desktop, and a rather wide toolbar or panel where to stick small applications, that means, gadgets. There is a wide variety of gadgets ranging from TODO lists to weather forecasts and music control players. Honestly I think is nothing new, we got them in Linux since WindowMaker or Afterstep, but what make gadgets special are that they are thought to be easily integrated with internet services.
- Google Internet Gadgets, which are those we can add from iGoogle. iGoogle aims to be a perfectly customized front-page for websurfers, where they can organize and arranged gadgets providing the services they need. It is possible to add new tabs, group gadgets by category, and access to tons of information without bothering getting to a specific web page. Although the potential is huge, most gadgets are just RSS/Atom feeders.
It is also important to highlight that Google is not the only provider offering this kind of tools, other sites such as NetVibes are also very popular among users.
These last days, Google internet gadgets have brought their attention back to me. Watching David Glazer’s talk at Google IO: “OpenSocial Specification: What’s Next for OpenSocial”, I learnt google internet gadgets will become one of the pillars OpenSocial will rely on. OpenSocial is an initiative based on open standards, with the goal of providing a non-proprietary technology framework where to build social-enabled applications. Basically, is the attempt of Google plus other social-network sites, some of them big players in the industry such as Linked-in, MySpace, Friendster, SalesForce, etc…to fight against the fearing and growing dominance of Facebook as social platform.
From a technological point of view, Facebook gadgets are server-oriented. That means, they must be hosted in a server, where they work alike any other web application. Since Facebook is mostly programmed in PHP, Facebook gadgets are generally programmed in PHP as well, although bindings for other languages exist. Despite the need of a server where to host our Facebook mini-application, gadgets have not stopped springing out since the Facebook Developer Platform was released. The Facebook developer community looks very active with lots of events being organized worldwide (take a look at Facebook Developer Garage Barcelona). Talking about Facebook apps, I found very revealing this article from Ben Lorica, “Facebook App Categories Ranked By Usage”, at O’Reilly Radar. If you are interested in social networks I strongly encourage you to take a look at this figures (I would like to see other numbers from other social sites).
On the contrary to Facebook gadgets, Google internet gadgets can run either on a client as well as in a server. Of course, they are hosted in a server, more precisely in some hard-disk at Google’s facilities, but you do not need of an external provider where to host your gadget, as it happens with Facebook. You can do all your work by maybe interacting with other internet services and mixing contents together. In case you need to store user specific data, then you may need a server (basically a storage provider and an API to interact with).