Cameron Laird's personal notes on varieties of Python implementation (original) (raw)
I started this page in 1998. Finally in 2007 I began to move its content to the Wiki; look there for the latest information. Until the transition is complete, what follows was, at least, correct at one time:
Multiple implementations process the Python computer language. Those coming fromJava, C, FORTRAN, and so on might find this unremarkable; it's a striking contrast, though, with Python's most immediate peers:Perl, Ruby,Tcl, ... Eventually I'll analyze the dynamics of this phenomenon. In the meantime, I intend to catalogue the diversity:
- "ActivePython is ActiveState's quality-assured binary build ..."
- "berp is an implementation of Python 3, written in Haskell."
- CPython is Guido van Rossum's reference Python [mention version prospects]
- deeply embedded python ...
- Diet Python
- Emscripten experimentally translates the C of CPython to JavaScript (to the unholy extent of supporting the ZODB Webscale Edition monstrosity)
- Enthought's "Enhanced Python" offers even more "batteries" than usual, including packages for GUI construction, scientific programming, persistence, visualization, and more.
- Pyrex ("It's not full Python but it's close", in the words of one colleague) is interesting enough to deserve an entire article of its own. I hope to write it in 2004 [also be aware of the relatedCython]
- Neil Schemenauer'sgarbage-collected Python
- IronPython [explain; same Jim as with Jython; ...]
- Jython [explain; admiration for achievement of Jim Hugunin and Barry; performance possibilities]
- Movable Python
- Nuitka shocks me.
- Numba is important
- psyco and pyrex (and prothon?)
- "PyMite is a flyweight Python interpreter written from scratch to execute on 8-bit microcontrollers as well as desktop computers..."
- PyPy is really exciting ... [explain]
- Shed Skin is "an experimental Python-to-C++ compiler".
- Skulpt is an in-browser implementation. [So is Pyjamas.]
- SLOPPY
- I've organized a separate page forStackless Python.
- John Max Skaller aimsVyper at ... [explain] [OCaML] I "It adds tail calls, list comprehensions, lexical scoping, full gc, and pattern matching to Python."
- Will Ware implements microthreads. After earlier independent experiments, he's now folded his efforts on top ofStackless. As ofLeap Day 2000, task switching is not yet pre-emptive. Stackless 1.1 includes a per-thread scheduling hook that simplifies this fix. Warren Postma and other control programmers like the microthreads project for the constraints it should give on thread latency.
- As part of the .NET effort, Mark Hammond and colleagues have re-implementedPython in C#.
- [other]
- a separate but related topic is the gaggle of packages written for Python that implement DbC,multi-methods, functional programming, constraint-based programming, ...
- a special topic, of particular interest to me, is "slenderized" Pythons that fit in harsh environments, including
- this FTP directory of generations for MS-DOS, OS/2, and so on;
- Jean-Claude Wippler, Jeff Senn, Brian Lloyd and others have worked on tinyPython. One approach is to exploit "executable compressor"UPX: "This gets python15.dll down to 220K and seems to work for me";
- [Explain Pyco and PythonD];
- Pippy is Python for the Palm;
- [museum]
- "ShedSkin is a Python -> C++ compiler (or translator) written in Python, created by Mark Dufour."
Cameron Laird's personal notes on varieties of Python implementation/claird@phaseit.net