Parrots, Pythons And Things That Go Splat
ajs writes "As you may know, there was a contest between Dan Sugalski and Guido van Rossum over the performance of Parrot running Python byte-code, and the loser was to take a pie in the face. Well, in the end it was between Dan and time and Dan lost... he was unable to get the Python bytecode translator to work sufficiently well for the contest (it was fast, but not complete), but when Dan conceded, Guido was gracious enough to decline to throw a pie, what a sport! The Perl community, however, was not quite so gracious (they wanted to see Dan take a pie for the team), and the final event ended up being a benefit for the Perl Foundation. Meanwhile, see Dan's Blog for details on what sorts of Parrot goodness came of this."
Huh? IronPython is even faster [slashdot.org] that the normal C impl, so I guess it was more a contest of the Parrot VM than it is php vs. python. Don't worry, I have faith Parrot will be as good as the other VMs (Java, Mono) and at least on par with, but most probably faster, than a hand-rolled php engine.
Let's not jump to conclusions, everyone. While he did lose the challenge, it seems that he lost itbecause there simply wasn't enough time to implement the functionality required to run the python scripts on the Parrot interpreter. Hopefully, the parrot interpreter would win this contest if it the developers had more time. See below for a quote from the concession:
This concludes the effort to implement the Pie-thon benchmark for
OSCON, because there isn't any chance to implement the needed bits for
b0.py in the remaining time.
Four of seven benchmarks are running: b1, b2, b3, and b6. b5 is done
partially. Three of these are faster on Parrot, but e.g. while b2.py
is running 3 times the speed of python, it takes just 0.2s here on a
Pentium 600, which makes it hard to say, what's faster for these test
collection.
The benchmarks are mainly testing the speed of builtin functions,
which are of course mature and optimized in Python, while a lot of the
builtins just didn't even exist in Parrot a month ago. When it comes
to just running arithmetic code, like in b2.py, Parrot is a lot
faster.