pyjamas
Pyjamas: write your own AJAX Framework

## Features

Dynamic and reusable UI components: programmers can use pre-designed classes to implement otherwise time-consuming dynamic behaviors, such as drag-and-drop or sophisticated visual tree structures.
Supports basic python types, emulated in javascript, such as List, Dictionary, Tuple, string; many of the standard python builtin functions, such as map, filter, range; and some of the standard python Exceptions are supported.
Declarative style of "desktop" widget programming (almost identical to python-qt4, python-gtk2 and python-wxWidgets), yet the applications are compiled to javascript and run in all major web browsers.
Simple RPC mechanism
Browser history management, covering "Back", "Forward" with no hassle for the developer. AJAX applications typically break the "Go Back" button: use the History module to provide your application with History management.
Run-time Support for runtime errors: a function call stack can be kept in debug mode, and displayed when a runtime error occurs. This is incredibly useful in situations where installing a Javascript debugger is inconvenient or impossible.
Pyjamas handles all cross-browser issues for the developer.
The developers can mix handwritten JavaScript in the Python source code, including plumbing in to other Javascript frameworks and libraries.
Beginnings of support for using Google APIs in GWT applications (initially, support for Google Gears Database)
Pyjamas is entirely Free Software.
The developers can design and develop their application in a pure object-oriented fashion, since they're using Python (instead of JavaScript).