A different approach to extend Gmail's functionality was Gmail Labs, which allowed you to pick add-ons that are dynamically integrated in Gmail. Depending on the Gmail add-ons that you select, you'll run one of the many possible customized versions of Gmail. For now, only Gmail engineers add Google Labs features.
I'm sure that many Greasemonkey users would like to add upload a script to Gmail or Google Docs so that it's saved on Google's servers and it no longer requires Greasemonkey. Ideally, the script should use Google APIs instead of manipulating the DOM directly.
Google Scripts is answer to this problem, it's a way to extend the functionality offered by services like Google Docs, Gmail or Google Calendar.
With scripts, you can:
* Create your own custom spreadsheet functions
* Automate repetitive tasks (e.g. process responses to Google Docs forms)
* Link multiple Google products together (e.g. send emails or schedule Calendar events from a list of addresses in a Spreadsheet)
* Customize existing Google products (e.g. add custom buttons or menus to run your own scripts)
The scripts help you add macros to a Google spreadsheet by writing some JavaScript code in Google's script editor. "Google Apps Script provides the ability to automate a variety spreadsheet actions, such as reading and changing values in cells and ranges, changing formats and formulas, and creating custom functions," explains Jonathan Rochelle.
But the feature goes beyond spreadsheet macros. "Users write scripts in JavaScript using libraries designed to provide a powerful interface with Google products. If you already are a JavaScript developer, a key difference is that scripts run on Google Servers instead of user browsers. As a result, direct operations on the client-side DOM are not supported, although some restricted functionality is provided. Your code executes server-side, and operates on the Google products you've coded for."
For now, Google Scripts is not publicly available, but you can apply to become a tester if you have a Google Apps account.
{ via Google Blogoscoped }