28 votes

Que propose PyPy par rapport à CPython, Jython et IronPython?

D'après ce que j'ai vu et lu sur les blogs, PyPy est un projet très ambitieux. Quels sont les avantages qu'il apportera à la table par rapport à ses frères et sœurs (CPython, Jython et IronPython)? Est-ce la vitesse, la compatibilité multiplateforme (y compris les plates-formes mobiles), la possibilité d'utiliser des extensions c sans le GIL, ou s'agit-il davantage d'un exercice technique sur ce qui peut être fait?

38voto

fuzzyman Points 3945

PyPy est vraiment deux projets:

  • Un interprète compilateur ensemble d'outils vous permettant d'écrire des interprètes dans RPython (statique sous-ensemble de Python) et avoir de la croix-plate-forme des interprètes compilé autonome, pour la JVM, pour .NET (etc)
  • Une implémentation de Python dans RPython

Ces deux projets permettent beaucoup de choses.

  • Le maintien de Python en Python est beaucoup plus facile que de le maintenir dans C
  • À partir d'une seule base de code, vous pouvez générer des interpréteurs Python qui s'exécutent sur la machine virtuelle java .NET et autonome - plutôt que d'avoir de multiples légèrement incompatible implémentations
  • Partie de le compilateur comprend un ensemble d'outils expérimentaux JIT générateur (maintenant dans sa cinquième incarnation et de commencer à travailler vraiment bien) - le but est pour un JITed PyPy de courir beaucoup plus vite que Disponible
  • Il est beaucoup plus facile d'expérimenter avec le langage fondamental de fonctionnalités, comme la suppression de la GIL, une meilleure collecte des ordures, de l'intégration stackless et ainsi de suite

Donc il y a vraiment beaucoup de raisons pour PyPy être passionnant, et il commence enfin à vivre à la hauteur de ses promesses.

5voto

Jason Christa Points 2739

Ceci est un lien vers la présentation que l'un des auteurs de PyPy a donnée à PyCon 2009. Il est très instructif.

4voto

vartec Points 53382

La caractéristique la plus importante est bien sûr le compilateur JIT. Dans Disponible, les fichiers sont compilés en bytecode (.pyc) ou optimisé bytecode (.pyo), puis interprété. Avec PyPy ils vont être compilé en code natif. PyPy comprend également Stackless Python patchs, dont c'est impressionnant de fonctionnalités (tasklet la sérialisation, la lumière threads, etc.)

0voto

Georg Schölly Points 63123

Dans le cas où Python obtient un vrai JIT, je pense que ça va être aussi rapide que n'importe quelle autre implémentation.

L'avantage est qu'il est beaucoup plus facile d'implémenter de nouvelles fonctionnalités. On peut le voir aujourd'hui en observant la bibliothèque. Souvent, les modules sont d'abord écrits en Python, puis traduits en C.

0voto

OscarRyz Points 82553

compatibilité multiplateforme

Oui

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X