pyjamas
build
AJAX apps in Python (like Google did for Java)
About pyjamas
Many people, when first finding out about Google Web
Toolkit,
wonder "why can't I use Python instead of Java?".
pyjamas
is designed to make that possible.
(Download Pyjamas 0.5).
What is pyjamas?
pyjamas
is a stand-alone python to javascript compiler, an AJAX framework / library
and a Widget set API.
Why should I use it?
You can write web applications in python - a readable programming language -
instead of in HTML and Javascript, both of which become quickly unreadable
for even medium-sized applications. Your application's design can benefit
from encapsulating high level concepts into classes and modules (instead
of trying to fit as much HTML as you can stand into one page); you can
reuse - and import - classes and modules.
Also, the AJAX library takes care of all the browser interoperability
issues on your behalf, leaving you free to focus on application development
instead of learning all the "usual" browser incompatibilities.
Overview
Like GWT, pyjamas
involves the translation of the application and libraries (including UI
widgets and DOM classes) to Javascript and the packaging up of that
Javascript code.
There are two core developer tools included with pyjamas.
pyjs
translates Python code to Javascript by walking the Python abstract
syntax tree and generating Javascript.
In many cases, built-in Python types require a custom Javascript
implementation. For example, even though Python lists are similar
to
Javascript arrays, Python lists are converted to custom objects that
implement methods such as append. These custom objects,
required for translation by pyjs,
are defined in a library called
pyjslib.![[2]](img/num2.png)
Like GWT, pyjamas
comes with a set of UI widgets as well as a library for DOM
manipulation. These libraries are written in Python but
are, like everything else, translated to Javascript for deployment.
The overall translation of individual components is managed by build
which also creates the necessary boilerplate code. The result is
a set of .html and .js files that can be served up
by a Web server.
There are other components planned which have not been covered here
such as server-side code for communication in client-server
applications. The examples do however contain JSONRPC server-side
source code (in cgi python, and php) which give an idea of what's
involved.
|
![[overview]](img/overview.png) |
Getting Started
Pyjamas is slightly different from traditional Web development: it's
more like Desktop application development. Emphasising this and
helping you to begin developing your first application, is a
getting started page. Also,
a more comprehensive and direct guide to getting started is in
the online Pyjamas Book.
Building User Interfaces with Pyjamas
The
ui module
contains all of the main classes you need to create your user interface. At
first, this module can be a quite confusing because of the number of classes
defined. To become familiar with
the user interface side of Pyjamas, you might like to refer to the Pyjamas User Interface Showcase. You
might find the ui module class hierarchy useful.
Additionally, there is API documentation
on pyjd.org, along with a
tutorial on how to
create your own interactive widget.
Pyjamas Book
An online version of the
Pyjamas Book
is available to read, and is in development. Contact lkcl@lkcl.net if there are any issues that you believe should be
covered; if you find any errors; or if the book proves useful enough to
be worth paying for. The Bookreader itself is a Pyjamas application
which uses AJAX to load the contents as text files, and Wiki-like markup
is used, on the browser, to generate the HTML displayed.
Download
Pyjamas can be downloaded from sourceforge,
here.
The current release is 0.5. Latest source code in development
is available from sourceforge subversion,
here.
Useful Links
- The
Google
Code page has a wiki with
several pages you may find useful,
as well as the issue tracker we're using to log all the known bugs.
Please ignore the subversion
repository, it is now out-of-date: we have moved to
sourceforge
- The
Google
Group is the main mailing list
for people using or developing
pyjamas.
- Pyjamas-Desktop
is a tool for running pyjamas
applications
on the desktop.
- The Sourceforge
project page will no doubt also
be useful
to some folks.
-
The Online version of the
Pyjamas Book,
which is itself a Pyjamas-based AJAX book reader, contains a comprehensive
guide to Pyjamas.
- The GWT
documentation pages
are actually quite useful. pyjamas
has reimplemented much of
GWT in Python, so you can use the GWT
documentation to learn how to build user interfaces in pyjamas.