6 Intérpretes de Python que deberías probar

Python, uno de los lenguajes de programación más populares, requiere un intérprete para ejecutar las instrucciones definidas por el código de Python.

A diferencia de otros lenguajes que se compilan directamente en código de máquina, Python depende del intérprete para leer el código y traducir sus instrucciones para que la CPU realice las acciones relacionadas.

Hay varios intérpretes y en este artículo, vamos a dar un vistazo a algunos de ellos.

Cuando se habla de un intérprete de Python, generalmente se hace referencia al binario /usr/bin/python . Eso te permite ejecutar un archivo .py .

Sin embargo, la interpretación es sólo una tarea más. Antes de que una línea de código de Python se ejecute realmente en la CPU, se requieren estos cuatro pasos:

  1. Léxico : El código fuente hecho por humanos se convierte en una secuencia de entidades lógicas, los llamados tokens léxicos.
  2. Análisis: En el analizador, los tokens léxicos se verifican con respecto a la sintaxis y la gramática. La salida del analizador es un árbol de sintaxis abstracta (AST).
  3. Compilación: En función del AST, el compilador crea el código de bytes de Python. El bytecode consta de instrucciones muy básicas independientes de la plataforma.
  4. Interpretación: El intérprete toma el código de bytes y realiza las operaciones especificadas.

Como puedes ver, se requieren muchos pasos antes de tomar cualquier acción real. Por ello, tiene sentido echar un vistazo a los diferentes intérpretes.

1. CPython

CPython

es la implementación de referencia de Python y la predeterminada en muchos sistemas.

Como sugiere su propio nombre, CPython está escrito en C.

Como resultado, es posible escribir extensiones en C y por lo tanto, hacer que el código de la biblioteca basado en C -ampliamente utilizado- esté disponible en Python.

CPython está disponible en una amplia gama de plataformas, incluidas ARM, iOS y RISC.

Sin embargo, como implementación de referencia del lenguaje, CPython está cuidadosamente optimizado y no se centra en la velocidad.

2. Pyston

Pyston

es una bifurcación del intérprete CPython que implementa optimizaciones de rendimiento.

El proyecto se describe a sí mismo como un reemplazo del intérprete estándar de CPython para grandes aplicaciones del mundo real con un potencial de aceleración de hasta el 30 %.

Debido a la falta de paquetes binarios compatibles, los paquetes de Pyston deben volver a compilarse durante el proceso de descarga.

3. PyPy

PyPy

es un compilador Just-in-time (JIT) para Python que está escrito en RPython, un subconjunto de Python tipificado estáticamente.

A diferencia del intérprete de CPython, PyPy compila en código de máquina que la CPU puede ejecutar directamente.

PyPy es el patio de recreo para los desarrolladores de Python donde pueden experimentar con nuevas funciones más fácilmente.

PyPy es más rápido que la implementación de referencia de CPython.

Debido a la naturaleza del compilador JIT, solo las aplicaciones que se han estado ejecutando durante mucho tiempo se benefician del almacenamiento en caché.

PyPy puede actuar como reemplazo de CPython. Sin embargo, hay un inconveniente.

La mayoría de los módulos de extensión C son compatibles, pero se ejecutan más lentamente que uno de Python.

Los módulos de extensión PyPy están escritos en Python (no C) y por lo tanto, el compilador JIT puede optimizarlos, mientras su aplicación no dependa de módulos incompatibles.

PyPy es un excelente reemplazo para CPython, hay una página dedicada en el sitio web del proyecto que describe las diferencias con CPython al detalle.

4. RustPython

Como sugiere su propio nombre, RustPython es un intérprete de Python escrito en Rust.

Aunque el lenguaje de programación Rust es bastante nuevo, ha ido ganando popularidad y es candidato a ser el sucesor de C y C++.

Por defecto, RustPython se comporta como el intérprete de CPython pero también tiene un compilador JIT que se puede habilitar opcionalmente.

Otra buena característica es que la cadena de herramientas de Rust permite compilar directamente en WebAssembly y también permite ejecutar el intérprete completamente en el navegador.

Se puede encontrar una demostración en el repositorio de Github, rustpython.github.com/demo, del propio proyecto.

5. Stackless Python

Stackless Python

se describe a sí mismo como una versión mejorada del lenguaje de programación Python.

El proyecto es básicamente una bifurcación del intérprete CPython que agrega microhilos, canales y un programador al lenguaje.

Los microhilos permiten estructurar tu código en tasklets que permiten ejecutar código en paralelo. Este enfoque es comparable al uso de subprocesos verdes del módulo greenlet.

Los canales se pueden utilizar para la comunicación bidireccional entre tasklets, un proyecto conocido de Stackless Python es el juego MMORPG Eve Online.

6. Micro Python

MicroPython

es el camino a seguir si apuntas a los microcontroladores. Es una implementación sencilla que solo requiere 16kB de RAM y 256kB de espacio.

Debido al entorno integrado al que está destinada, la biblioteca estándar de MicroPython es solo un subconjunto de la extensa STL de CPython.

Para desarrollar y probar o como una alternativa liviana, MicroPython también se ejecuta en máquinas x86 y x64 ordinarias.

MicroPython está disponible para Linux, Windows y muchos microcontroladores.

¿Qué intérprete es mejor?

Por diseño, Python es un lenguaje intrínsecamente lento. Dependiendo de la tarea, existen diferencias de desempeño significativas entre los intérpretes que se utilicen.

Si quieres obtener una descripción general de qué intérprete es la mejor elección para una determinada tarea, puedes consultar pybenchmarks.org .

Una alternativa al uso de un intérprete es compilar el código binario de Python directamente en el código de la máquina. Nuitka, por ejemplo, es uno de esos proyectos capaces de compilar código Python a código C y de C a código máquina.

Luego, el código C se compila en código de máquina utilizando un compilador de C ordinario.


Conclusión final

Python es un lenguaje maravilloso para la creación rápida de prototipos y la automatización de tareas. Además, es fácil de aprender y muy adecuado para principiantes.

Si suele utilizar CPython, puede ser interesante ver cómo se comporta tu código en otros intérpretes.

Si usas Fedora, puedes probar fácilmente algunos otros intérpretes ya que el administrador de paquetes ya proporciona los archivos binarios correctos para ello.

Consulta fedora.developer.org si quieres obtener más información.


Relacionado

15 Excelentes Libros GRATIS de Programación hechos por el creador de tutoriales de programación Flaviocopes (en inglés)

En los siguientes manuales vas a encontrar un gran contenido (en inglés) creado por @flaviocopes. Si te gustan sus contenidos, no dejes de visitar su página web flaviocopes.com, en la que Flavio publica un artículo en el que aprender algo nuevo cada día. Manual de Python. 2021 PDF, ePub, Mobi Manual para principiantes de React. 2020 PDF, ePub, Mobi Manual para principiantes de JavaScript. 2020 PDF, ¡SEGUIR LEYENDO!

15 Mejores Lenguajes de Programación que Aprender

Una de las habilidades más importantes para aprender en el mundo de hoy en día, es saber programar con un lenguaje de programación. En la actualidad, las computadoras han entrado en casi todas las industrias, desde el piloto automático de un avión hasta el velocímetro digital de una bicicleta pasando por la inclusión del Internet de las cosas en los pequeños electrodomésticos. Casi todo lo que ¡SEGUIR LEYENDO!

17 Nuevos Cursos Gratuitos de SQL, Python, Diseño Web y Más (06 de Marzo)

Regreso con nuevos cursos gratis, recuerda que algunos de los cupones de los cursos publicados ayer, es muy posible que aún sigan activos; y vas a poder encontrar cursos en español de javascript -typescript, react,vue- y Unity. Además, de cursos en inglés de Python, R, SQL y más; también tienes muchos cursos totalmente gratis y una gran oferta de guías para programación de O´Reilly (en inglés) ¡SEGUIR LEYENDO!

21 Nuevos Cursos Gratuitos: Python, Google Cloud, CSS y Más (25 de Febrero 2021)

Como de costumbre, vamos con los cursos gratis, tenemos 3 cursos en español: Computación, Google Cloud y aplicaciones web; y 18 cursos gratuitos en inglés: Python, Flask, Ionic, PHP, Android, Github, CSS, Flexbox, Illustrator, Photoshop, Scrum y minado de Sugar. Recuerda, que puedes si quieres, puedes acceder a las Mejores Ofertas de Udemy ¡Alé, aprendamos gratis un ratico! Cursos en Español Computación ? Curso Gratuito de ¡SEGUIR LEYENDO!

25 Mejores cursos de Udemy 2020 [EN]

Más de 20 expertos han compilado esta lista de los mejores cursos, certificados, tutoriales, capacitación y clases de Udemy disponibles en línea para 2020. Estos incluyen las mejores ofertas y descuentos para brindarte los mejores precios en oferta. Los cursos son adecuados para principiantes, estudiantes intermedios y expertos. Esta compilación ya ha ayudado a más de 72.000 estudiantes y se actualiza cada poco tiempo. Consulta nuestra ¡SEGUIR LEYENDO!

26 Nuevos Cursos GRATIS de Udemy: Python, Javascript, Flutter (cupón finalizado)

26 Nuevos cursos con cupones free de Udemy: En español (typescript,javascript, react, vue y videojuegos) e ingles (Python, Django, Javascript, R, SQL, Flutter, Java, Qt, Bootstrap, Illustrator y Photoshop). Cursos en Español ? Curso Gratis de Udemy: Aprende JavaScript y Jquery de 0 a 100 APÚNTATE ? Curso Gratis de Udemy: Aprende Typescript de 0 a 100 APÚNTATE ? Curso Gratis de Udemy: Aprende Vue + ¡SEGUIR LEYENDO!

40 Cursos Gratis de Udemy: Desarrollo Web, Python (cupón finalizado)

Recién llega la primavera y vamos con una publicación más, que incluye los cursos del Lunes; hoy tenemos, 9 cursos en español (Typescript, Javascript, React, Vue, Firebase, Swift, Azure, HTML y CSS, Power Bi). Más 31 cursos en inglés: Javascript, Typescript, React, Python, R, Java, Drupal, Android y Kotlin, Básicos de Visual Studio Code, Bootstrap, Gitlab, Maya 3D, Photoshop, Marketing en Facebook e Instagram, SEO. Iniciación ¡SEGUIR LEYENDO!