Python on Javascript VMs (such as V8)

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Oct 2 08:25:23 EDT 2008


[folks, my apologies for the double-post via comp.lang.python whilst
my tiny brain works backwards and notices - eventually - that
comp.lang.python is mirrored from python-list duh]

On Sep 3, 10:02 pm, bearophileH... at lycos.com wrote:

> Berco Beute:

> > I wonder what it would take to implement Python in JavaScript so it

 1200 lines of code for the compiler, and about... 800 for a basic
 suite of builtin types (Dict, List, set, string).

 http://pyjamas.sf.net

 so it's been done.

> > can run on those fancy new JavaScript VM's such as Chrome's V8 or

 that's been done, too.

 http://advogato.org/article/985.html

> > Firefox' tracemonkey. Much the same as Python implementations in C#
> > (IronPython) and Java (Jython). It would certainly bring back the fun
> > in web application development.

 it's great :)  been using it just for fun, for about 18 months.
    http://lkcl.net/site_code
 and for a personal project
    http://partyliveonline.com
 and for a commercial project which i'm sorry i can't refer you to the
development site right now.

> Is there anything done in that direction?

 yup.  quite a lot.
 see http://groups.google.com/groups/pyjamas-dev

> The mythical beast pypy is supposed able to translate Python to
> Javascript too, I think. From some of my benchmarks Chrome's V8 is a
> little slower than Psyco... so the matter is how much efficiently can
> be Python translated in JS.

 well, the llpamies pyjamas branch from sep 2007 has some definite
improvements in the _features_ provided (python-wise) but some time
after that, one too many interoperability features were added (proper
support for **kwargs) and it just... blew up, got too complicated for
luiz and he abandoned the effort.

 i've outlined on pyjamas-dev what work needs to be done to satisfy
both goals of remaining efficient and also providing support for
**kwargs.

 one _much_ more important requirement - over-and-above
"efficiency" (which isn't that bad anyway in pyjs.py) is readability.

 remember you have to _debug_ these xxxxing programs .... in
javascript, not python (which is why i did pyjamas-desktop - http://pyjd.sf.net
so you could keep on using the standard python interpreter and _then_
run the same app through pyjs.py to convert it to javascript).

 l.



More information about the Python-list mailing list