que interpretado compilado python

que - python es interpretado o compilado



¿Cuáles son los pros y los contras de las diversas implementaciones de Python? (6)

IronPython y Jython usan el entorno de ejecución para .NET o Java y con eso viene la compilación Just In Time y un recolector de basura diferente del CPython original. También podrían ser más rápidos que CPython gracias al JIT, pero no estoy seguro.

Una desventaja en el uso de Jython o IronPython es que no se pueden usar módulos C nativos, solo se pueden usar en CPython.

Soy relativamente nuevo en Python, y siempre he usado la implementación estándar de cpython (v2.5).

Sin embargo, me he estado preguntando sobre las otras implementaciones, particularmente sobre Jython e IronPython. ¿Qué los hace mejores? ¿Qué los empeora? ¿Qué otras implementaciones hay?

Creo que lo que estoy buscando es un resumen y una lista de pros y contras para cada implementación.


Pros: acceso a las bibliotecas disponibles para JVM o CLR.

Contras: Ambos, naturalmente, van a la zaga de CPython en términos de características.


PyPy es una implementación de Python escrita en RPython que es un subconjunto de Python.

RPython puede traducirse para ejecutarse en una VM o, a diferencia de Python estándar, RPython puede compilarse estáticamente.


Jython e IronPython son útiles si tiene una necesidad imperiosa de interactuar con bibliotecas existentes escritas en una plataforma diferente, como si tuviera 100,000 líneas de Java y solo quisiera escribir un script de Python de 20 líneas. No es particularmente útil para cualquier otra cosa, en mi opinión, porque son perpetuamente algunas versiones detrás de CPython debido a la inercia de la comunidad.

Stackless es interesante porque tiene soporte para hilos verdes, continuaciones, etc. Una especie de Erlang-lite.

PyPy es un intérprete / compilador experimental que algún día puede suplantar a CPython, pero por ahora es más un banco de pruebas para nuevas ideas.


Un beneficio adicional para Jython, al menos para algunos, es que carece de GIL (Global Interpreter Lock) y usa los hilos nativos de Java. Esto significa que puede ejecutar código Python puro en paralelo, algo que no es posible con GIL.