"[Gadgets] are so easy to create that they are a good starting point if you are just learning about web programming. The Google Homepage API consists of a few simple building blocks: XML, HTML, and JavaScript." This is a description from December 2005, when Google opened the personalized homepage to developers.
Since then, Google's gadgets evolved a lot: they have more functionality, can be added to web pages and Google Desktop, became a new form of advertising and are able to recreate a web page from scratches. But gadget also became synonymous to extension, add-on, plug-in at Google. The concept was extended to other applications: Google Maps (mapplets), Google Calendar (web content), Google Toolbar (buttons), Google Search (subscribed links) and more.
Google uses similar directories for all these different kinds of gadgets:
* iGoogle gadgets (more than 20,000)
* Google gadgets for web pages (a subset of the iGoogle gadgets)
* Google Desktop gadgets
* Google Toolbar buttons
* Google Maps mapplets
... but also for other types of content:
* Google Desktop plug-ins (extend the indexing capabilities)
* Google Earth KML files (overlays)
While most iGoogle gadgets can be added to web pages, Google Desktop gadgets can be added to iGoogle only using a browser plug-in and mapplets work only inside Google Maps. There's still no single standard for gadgets and you need to write different code, depending on the medium where the gadgets run.
It would be nice to write a single code that displays status data in Google Toolbar or in a mobile app, a simple interface in iGoogle, a richer interface in Google Desktop's sidebar and could also integrate with Google Maps or Google Calendar. A mail gadget could show the number of unread messages in Google Toolbar, their subjects in iGoogle, their content in Google Desktop, the locations mentioned in the messages at Google Maps and the events at Google Calendar. You would only need to add the gadget once and see it in different incarnations, depending on the context.