«

»

I've been following the PyPy project since I first heard of it in 2003 or so. The concept behind it is fascinating; it's a Python interpreter written in (a subset of) Python. It's actually a lot more than that because the language front-ends (e.g. Python) are quite separate from the backends (e.g. C, JVM, CLI, Python). This makes it a unique platform for language research because coding Python is typically easier than C, and so much of the work is already done for you.

It's clear that PyPy is very useful for academic research, but it's also quickly becoming a practical target for developing and deploying Python code. At the PyPy Speed Center you can see that it's already several times faster than CPython, and has the potential to fix most of the more fundamental flaws of the CPython VM.

What's awesome right now:

PyPy has a modern garbage collector, not ref counting

PyPy's JIT can run string mangling and numerics code very quickly, which removes the need for most C extensions

PyPy is already fast, and is getting faster all the time

How it can be more awesome (just my opinion, I don't speak for the PyPy team and their implementation goals):

PyPy has an alpha quality cpyext that will allow you to use CPython extensions (requires a recompile), and when that's polished it will be very easy for CPython users to migrate en masse, even though they may have complicated dependencies such as NumPy, SciPy, PIL, etc.

PyPy has the potential to eventually remove the GIL, and/or have multiple VMs in the same OS process

PyPy could add M:N threading and concurrency constructs to the language (some stackless support already exists, but is not currently compatible with the JIT and doesn't take advantage of multiple cores)

PyPy could simultaneously support Python 2.x and 3.x code in the same process, making it practical to actually make the transition (note: this is a crazy idea that would be terribly difficult)