[Python Wpg] Has anybody worked with Pyjamas?

Kevin Veroneau kveroneau at gmail.com
Fri Sep 24 23:15:42 CEST 2010


Hello everyone,

Pyjamas is a Python-to-Javascript compiler, an AJAX framework and a Widget
Set API. Pyjamas started life as a Python port of Google Web
Toolkit<http://code.google.com/webtoolkit/>,
the Java-to-Javascript compiler.

The above is copied and pasted from their project website:  http://pyjs.org/

It is very similar to programming a GTK application in Python, and uses many
of the same ideas from GTK development.  Since it compiles to pure
javascript(which is by default cross-browser compatible), no server-side
software is needed.  In fact, you can run it locally from "file:///" if you
really wanted to.  However, one will need a server in order to bind widgets
to a backend database for example.  It comes with a full JSON library as
well.  However, for anything that does not require a datastore, and uses
pure python modules, it make any Python application available through the
web.  For example, you have a current Python application which uses a CLI,
does not need to save or load data from storage, you can use this solution
to make a nice UI which is cross-platform and easy to share with others.

Pyjamas developers state that you can take any widely available Python
module and convert it to pure javascript using their compiler.  As long the
module is made in pure Python code, not a C module, for example.  A module
which has been demonstrated to compile to javascript is PureMVC.  PureMVC is
a cross-platform cross-language model-view-controller library.  It has been
ported to Python, C, and many other languages.  It can be found here:
http://puremvc.org/

Best of all, to use Pyjamas one only needs to know Python, HTML is optional.
 CSS is good, as it is used to style the various widgets.  I began using
Pyjamas recently to make websites as I prefer to make both the frontend and
the backend in Python, with little coding in HTML/JS/CSS.  Think of it as a
PURE PYTHON website.  It also keeps the frontend and backend
completely separate from eachother.  Forming a complete
model-view-controller, none of the code from the frontend sees the backend,
and vise versa.  Pyjamas also comes with a complete example of a Gmail
clone, their version resembles ms-outlook more than Gmail, but is a great
example of it's potential.

Pyjamas Examples: http://pyjs.org/examples/
My favorite example(using HTML5 canvas, compatible with Firefox):
http://pyjs.org/examples/asteroids/output/Space.html
The source for the above example:
http://pyjs.org/examples/asteroids/Space.py

I think this is a good example, as it shows extensive use of the Python math
and random libraries to do calculations which are compiled to Javascript.

In effect, why make the server do all those complex calculations in Python,
when most modern computers and browsers with JavaScript can do them pretty
fast and even cross platform.  However, for those very very
complex calculations, a simple JSON request to a server-side python script
can be done easily.  Mind you, Google Chrome has a very optimized JavaScript
engine and may perform at the same speed as a Python interpreter.
 Benchmarks anyone?

Let me know what you think of this python-to-javascript compiler and what
uses you think it may come in handy for.

Kevin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/winnipeg/attachments/20100924/9a21e516/attachment.html>


More information about the Winnipeg mailing list