PyPy no es una bifurcación de CPython, por lo que nunca podría fusionarse directamente en CPython.
Teóricamente, la comunidad Python podría adoptar universalmente PyPy, PyPy podría convertirse en la implementación de referencia y CPython podría descontinuarse. Sin embargo, PyPy tiene sus propias debilidades:
- CPython es fácil de integrar con los módulos Python escritos en C, que es tradicionalmente la forma en que las aplicaciones Python han manejado las tareas intensivas de la CPU (ver, por ejemplo, el proyecto SciPy).
- El paso de compilación PyPy JIT en sí mismo cuesta tiempo de CPU: solo es a través de la ejecución repetida de código compilado que se vuelve más rápido en general. Esto significa que los tiempos de inicio pueden ser mayores y, por lo tanto, PyPy no es necesariamente tan eficiente para ejecutar código de pegamento o scripts triviales.
- El comportamiento de PyPy y CPython no es idéntico en todos los aspectos, especialmente cuando se trata de "detalles de implementación" (comportamiento que no está especificado por el lenguaje pero que aún es importante a nivel práctico).
- CPython se ejecuta en más arquitecturas que PyPy y se ha adaptado con éxito para ejecutarse en arquitecturas integradas de formas que pueden no ser prácticas para PyPy.
- Podría decirse que el esquema de conteo de referencia de CPython para la administración de memoria tiene impactos de rendimiento más predecibles que los diversos sistemas GC de PyPy, aunque esto no es necesariamente cierto para todas las estrategias de "GC puro".
- PyPy aún no es totalmente compatible con Python 3.x, aunque es un elemento de trabajo activo.
PyPy es un gran proyecto, pero la velocidad de tiempo de ejecución en tareas intensivas en CPU no lo es todo, y en muchas aplicaciones es la menor de muchas preocupaciones. Por ejemplo, Django puede ejecutarse en PyPy y eso hace que la creación de plantillas sea más rápida, pero los controladores de la base de datos de CPython son más rápidos que los de PyPy; al final, qué implementación es más eficiente depende de dónde esté el cuello de botella en una aplicación determinada.
Otro ejemplo: pensarías que PyPy sería genial para los juegos, pero la mayoría de las estrategias de GC como las que se usan en PyPy causan una inquietud notable. Para CPython, la mayoría de los juegos intensivos en CPU se descargan en la biblioteca PyGame, que PyPy no puede aprovechar ya que PyGame se implementa principalmente como una extensión C (aunque vea: pygame-cffi). Todavía creo que PyPy puede ser una gran plataforma para juegos, pero nunca lo he visto realmente utilizado.
PyPy y CPython tienen enfoques radicalmente diferentes a las preguntas fundamentales de diseño y realizan diferentes compensaciones, por lo que ninguno es "mejor" que el otro en todos los casos.