Q: Si PyPy peut résoudre ces grands défis (vitesse, consommation de mémoire, parallélisme) par rapport à CPython, quelles sont ses faiblesses qui empêchent une adoption plus large?
R: Premièrement, il y a peu de preuves que l'équipe PyPy peut résoudre le problème de vitesse en général . Des preuves à long terme montrent que PyPy exécute certains codes Python plus lentement que CPython et cet inconvénient semble être profondément enraciné dans PyPy.
Deuxièmement, la version actuelle de PyPy consomme beaucoup plus de mémoire que CPython dans un ensemble assez large de cas. PyPy n'a donc pas encore résolu le problème de consommation de mémoire.
Que PyPy résout les grands défis mentionnés et sera en général plus rapide, moins gourmand en mémoire et plus convivial pour le parallélisme que CPython est une question ouverte qui ne peut pas être résolue à court terme. Certaines personnes parient que PyPy ne sera jamais en mesure de proposer une solution générale lui permettant de dominer CPython 2.7 et 3.3 dans tous les cas.
Si PyPy réussit à être meilleur que CPython en général, ce qui est discutable, la principale faiblesse affectant son adoption plus large sera sa compatibilité avec CPython. Il existe également des problèmes tels que le fait que CPython s'exécute sur une plus large gamme de processeurs et de systèmes d'exploitation, mais ces problèmes sont beaucoup moins importants par rapport aux performances de PyPy et aux objectifs de compatibilité CPython.
Q: Pourquoi ne puis-je pas supprimer le remplacement de CPython par PyPy maintenant?
R: PyPy n'est pas 100% compatible avec CPython car il ne simule pas CPython sous le capot. Certains programmes peuvent toujours dépendre des fonctionnalités uniques de CPython qui sont absentes dans PyPy telles que les liaisons C, les implémentations C de l'objet et des méthodes Python, ou la nature incrémentielle du garbage collector de CPython.