La bonne chose à prendre en compte lorsque l'on parle de PyPy projet est qu'il vise à réellement apporter deux éléments: le premier est le compilateur JIT générateur. Oui, générateur, ce qui signifie qu'ils sont la mise en œuvre d'un cadre pour l'écriture des implémentations de très dynamique des langages de programmation, tels que Python. Le second est le test de ce cadre, et est la PyPy de l'interpréteur Python de mise en œuvre.
Maintenant, il y a plusieurs réponses à la question pourquoi PyPy est si spécial: le projet de développement est en cours d'exécution à partir de 2004, qui a commencé comme un projet de recherche plutôt que d'une entreprise, reimplements Python en Python, met en œuvre un compilateur JIT en Python, et peut se traduire RPython (code Python avec certaines limitations pour le cadre pour être en mesure de traduire ce code à C) de binaires compilés.
La version actuelle de PyPy est 99% compatible avec Disponible la version 2.5, et peut fonctionner à la Django, Tordus, et de nombreux autres programmes Python. Il y a une limite de ne pas être en mesure d'exécuter existant Disponible C extensions, mais c'est aussi abordé avec cpyext module dans PyPy. C compatibilité de l'API est possible et, dans une certaine mesure déjà mise en œuvre. JIT est aussi très réelle, voir ce pystone comparaison.
Avec Disponible:
Python 2.5.5 (r255:77872, Apr 21 2010, 08:44:16)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from test import pystone
>>> pystone.main(1000000)
Pystone(1.1) time for 1000000 passes = 12.28
This machine benchmarks at 81433.2 pystones/second
Avec PyPy:
Python 2.5.2 (75632, Jun 28 2010, 14:03:25)
[PyPy 1.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``A radioactive cat has 18
half-lives.''
>>>> from test import pystone
>>>> pystone.main(1000000)
Pystone(1.1) time for 1000000 passes = 1.50009
This machine benchmarks at 666625 pystones/second
De sorte que vous pouvez obtenir presque 10x plus rapide en utilisant simplement PyPy sur certains calculs!
Donc, comme PyPy projet est à maturation lente et offrant certains avantages, il attire de plus l'intérêt de personnes essayant de résoudre des problèmes de vitesse dans leur code. Une alternative à la PyPy est unladden avaler (un projet Google), qui vise à accélérer Disponible de la mise en œuvre en utilisant LLVM JIT capacités, mais les progrès sur unladden avaler a été ralenti car le développeur nécessaires pour faire face à des bugs dans LLVM.
Donc, pour résumer, je suppose que PyPy est considéré l'avenir de Python car c'est en séparant la langue de la spécification de VM mise en œuvre. Fonctionnalités introduites dans, par exemple. stackless Python, pourrait être mise en œuvre dans PyPy avec très peu d'effort supplémentaire, car c'est juste à modifier le langage de spécification et de vous garder le code partagé le même. Moins de code, moins de bugs, moins de la fusion, en moins d'effort.
Et par l'écriture, par exemple, un nouveau shell bash mise en œuvre dans RPython, vous pourriez obtenir un compilateur JIT pour gratuit et de vitesse beaucoup de scripts shell linux sans réellement l'apprentissage de toute lourde JIT connaissances.