Implementations of Python
So, let's see. There's
- CPython
- Jython
- IronPython
- PyPy
- Starkiller
- Something on Parrot
- Something on Smalltalk VM
- Stackless (which is a kind of a different implementation) and
- Psyco (which is a kind of a JIT compiler for Python)
I wouldn't complain about Python having too few independent implementations anymore.
[permalink] [5 comments] 29.07.2004, 22:14
Filed under: python
- Comments:
Posted by Michael Chermside at 04.08.2004, 01:52
Here's my opinion of these:
CPython - a full-fledged Python implemention, of course.
Jython - a full-fledged Python implementation. Suffering, these days, from too few developers so it is falling a bit behind. Needs more developers.
Iron Python - lots of hype, but it's too new for anyone but Jim to have a well-founded opinion.
PyPy - Good idea, not working yet.
Starkiller - not an implementation. It's a type inferencer.
"Something on Parrot" - not working. No way to evaluate. It's taking the wrong approach (slightly). Instead of trying to exactly match the behavior of Python 2.3 in order to win a pie contest, it should be implementing whatever is most native to the parrot VM, rather like Iron Python and Jython do. I just hope it isn't abandoned now that the pie has been thrown.
"Something on Smalltalk VM" - this is the first I've heard of it. Neat.
Stackless - really just a patch onto Cpython, but it's worthy of mention here because of it's unique capabilities.
Psyco - It's really just a patch onto Cpython, but again, worthy of mention. The fact that it can, in certain specialized cases, outperform C is pretty impressive.
I also disagree with gab's claim that "Python has a good advantaga in having a well specified syntax and behaviour". I've seen much better specified languages. But it's nowhere near as poor as some others. The biggest problem is figuring out what's part of Python the language and what's just an implementation detail of CPython -- often the distinction exists only in Guido's head.