This is the release of Pyjamas 0.5, a python-to-javascript compiler with an AJAX Web Widget set, for creating python desktop-like applications that run in all major web browsers.
http://pyjs.org Pyjamas is NOT "another AJAX framework" where the widgets are predefined, fixed and inflexible. Thanks to the compiler, Pyjamas is a dynamic "framework's framework" where developers can define their own web framework, in Python classes and modules instead of being forced to write code in pure Javascript. The Pyjamas Web Widget set makes it possible for users to develop Rich Media Applications as if they were writing desktop applications, without having to know any Javascript, or even very much HTML. Developing applications using Pyjamas is much more similar to and has far more in common with developing PyQT4 or PyGtk2 applications than it has with "traditional" AJAX web development. Yet, thanks to the applications actually running in a Web Browser, developers get the best of both worlds. For those people who prefer to stick to "true" Desktop development, or who prefer to debug applications in Python rather than rely on the debugging features of Web Browser engines, there is the sister project, Pyjamas-Desktop - http://pyjd.org Pyjamas-Desktop allows the same application source code to be run, unmodified, in both the web browser and as a desktop application. The 0.5 release is a significant functionality update. Additions have been made to the core python-to-javascript compiler such as support for exceptions (try / except), lambda, and a debug option to track and print run-time stack traces, in cases where the deployment of a javascript script debugger is difficult or impossible (IE6 running under Wine). Also, the code-generator has undergone a reorganisation, and now has much better support for local and global variable, function, class and module scopes. Support for Dynamic loading of modules has been added, where each python module now has its own javascript (compiled) "cache" file. This makes it possible to share the modules across the 5 supported platforms, bringing a dramatic reduction in the amount of compiled javascript that is deployed. Also, support for dynamic module loading makes it much clearer how developers may interact with pyjamas-compiled modules from existing applications which already have an AJAX framework in place. Users of previous versions of Pyjamas should note that the UI widget classes have undergone a restructuring, reducing the 4,000 line ui.py into 70 separate small modules. The reorganisation allows applications to undergo a significant reduction in the amount of compiled javascript, by only importing UI Modules that are needed. Reorganisation scripts can be found in contrib/pyjamas_0.4_0.5_upgrade/ that will help in the conversion of existing applications. Also, to make developers' lives easier in both the testing and deployment of pyjamas applications, buildout has been added, along with a standard setup.py. Finally, an experiment is included, which is the beginnings of a way to speed up the execution of standard python, in a similar way to Python-Psyco. The combination of the pyjs python-to-javascript compiler and PyV8 - http://code.google.com/p/pyv8 - becomes a JIT compiler that supports both ARM and i386 assembler. The use of the Google V8 JIT compiler provides a means to dynamically load standard c-based python modules, and the use of pyjs means that the intermediate javascript is actually still human-readable. These are two distinct advantage over pypy, and the third advantage is that the direct translation, instead of going through an intermediary (RPython) means that the full dynamic semantics of the python language are reflected into javascript, and still available. Downloads are available at: http://code.google.com/p/pyjamas/downloads/list https://sourceforge.net/project/platformdownload.php?group_id=239074 http://pypi.python.org/pypi/Pyjamas/0.5 Pyjamas Book is at: http://pyjs.org/book/output/Bookreader.html#Getting%20Started Links to other documentation is on the main site: http://pyjs.org Development and discussion is at: http://groups.google.com/group/pyjamas-dev Subversion Source repository is at: https://sourceforge.net/scm/?type=svn&group_id=239074 IRC Channel is: #pyjamas at irc.freenode.net IRC Logs (thanks to Tim Riker) at: http://ibot.rikers.org/%23pyjamas -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html