[Python-Dev] "Becoming a Python Developer"

Andrew Kuchling akuchlin@mems-exchange.org
Fri, 6 Jul 2001 08:26:35 -0400


On Thu, Jul 05, 2001 at 09:48:13AM -0700, David Ascher wrote:
>For the purposes of Andrew's document, Mark Hammond, of ActiveState, is
>the BDFL on the .NET research project, which shouldn't be considered at
>the same level of maturity as Jython by any means.  In other words, it's
>fun, but it's not useful yet.

OK.  Here are the descriptions I've written.  If people want to
rewrite for accuracy, please make suggestions (or just rewrite the
text and send it to me):

\item Stackless Python is a fork of CPython, but not one that diverges
very far from the main tree.  Its author, Christian Tismer, rewrote
the main interpreter loop of CPython to minimize its use of the C
stack; in particular, calling a Python function doesn't occupy any
more room on the C stack.  This means that, while CPython can only
recurse a few thousand levels deep before filling up the C stack and
crashing, Stackless can recurse to an unlimited depth.  Stackless is
also significantly faster than CPython (around 10\%), supports
continuations and lightweight threads, and has found a community of
highly skilled users, who use it to do things such as writing
massively-multiplayer online game.  The Stackless Python home page is
at \url{http://www.stackless.com}.

\item Jython is a reimplementation of Python, written in Java instead
of C.  (It was originally named JPython, but the name had to be
changed for stupid trademark reasons.)  Jython compiles Python code
into Java bytecodes, and can seamlessly use any Java class directly
from Python code, with no need to write an extension module first, as
is necessary for CPython.   The Jython home page is at
\url{http://www.jython.org}.

\item Python for .NET is an experimental implementation of Python for
the .NET Framework.  Currently this seems to be a research effort,
because while compiling Python to .NET bytecodes has been implemented,
and the resulting code works, making the resulting code \emph{fast}
seems to be a difficult problem.  See the Python.NET home page, at
\url{http://www.activestate.com/Initiatives/NET/Research.html}, to get
an overview of the current state of progress.

--amk