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).