IronPython


IronPython es una implementación del lenguaje de programación Python dirigido a .NET Framework y Mono . Jim Hugunin creó el proyecto y contribuyó activamente a él hasta la Versión 1.0, que fue lanzada el 5 de septiembre de 2006. [3] IronPython 2.0 fue lanzado el 10 de diciembre de 2008. [4] Después de la versión 1.0 fue mantenido por un pequeño equipo en Microsoft hasta la versión 2.7 Beta 1. Microsoft abandonó IronPython (y su proyecto hermano IronRuby ) a fines de 2010, después de lo cual Hugunin se fue a trabajar en Google. [5] El proyecto lo mantiene actualmente un grupo de voluntarios en GitHub.. Es un software gratuito y de código abierto, y se puede implementar con Python Tools para Visual Studio, que es una extensión gratuita y de código abierto para Visual Studio IDE de Microsoft . [6] [7]

IronPython está escrito completamente en C # , aunque parte de su código es generado automáticamente por un generador de código escrito en Python.

IronPython se implementa sobre Dynamic Language Runtime (DLR), una biblioteca que se ejecuta sobre Common Language Infrastructure que proporciona escritura dinámica y distribución de métodos dinámicos, entre otras cosas, para lenguajes dinámicos. [8] El DLR es parte de .NET Framework 4.0 y también es parte de Mono desde la versión 2.4 de 2009. [9] El DLR también se puede usar como una biblioteca en implementaciones CLI más antiguas.

  • La versión 2.0, publicada el 10 de diciembre de 2008 y actualizada como 2.0.3 el 23 de octubre de 2009, tiene como objetivo CPython 2.5. [10] IronPython 2.0.3 solo es compatible con .NET Framework 3.5.
  • La versión 2.6, publicada el 11 de diciembre de 2009 y actualizada el 12 de abril de 2010, apunta a CPython 2.6. [11] Las versiones de IronPython 2.6.1 son compatibles binariamente solo con .NET Framework 4.0. IronPython 2.6.1 debe compilarse a partir de fuentes para ejecutarse en .NET Framework 3.5. IronPython 2.6.2, lanzado el 21 de octubre de 2010, es binario compatible con .NET Framework 4.0 y .NET Framework 3.5.
  • La versión 2.7 se lanzó el 12 de marzo de 2011 y está dirigida a CPython 2.7. [12]
  • La versión 2.7.1 se lanzó el 21 de octubre de 2011 y está dirigida a CPython 2.7. [13]
  • La versión 2.7.2.1 se publicó el 13 de marzo de 2012. Permite la compatibilidad con bibliotecas de formato de archivo ZIP , SQLite y ejecutables compilados. [14]
  • La versión 2.7.4 se publicó el 7 de septiembre de 2013. [15]
  • La versión 2.7.5 se lanzó el 6 de diciembre de 2014 y consiste principalmente en correcciones de errores. [dieciséis]
  • La versión 2.7.6 se lanzó el 21 de agosto de 2016 y solo incluye correcciones de errores. [17]
  • La versión 2.7.7 se lanzó el 7 de diciembre de 2016 y solo incluye correcciones de errores. [18]
  • La versión 2.7.8 se lanzó el 16 de febrero de 2018 y consta de correcciones de errores, código reorganizado y una infraestructura de prueba actualizada (incluidas pruebas significativas en Linux bajo Mono ). También es la primera versión compatible con .NET Core . [19]
  • La versión 2.7.9 se lanzó el 9 de octubre de 2018 y consta de correcciones de errores y código reorganizado. Está previsto que sea la última versión anterior a IronPython 3. [20]
  • La versión 2.7.10 se lanzó el 27 de abril de 2020 y agrega compatibilidad con .NET Core 3.1. [21]
  • La versión 2.7.11 se lanzó el 17 de noviembre de 2020 y resuelve problemas cuando se ejecuta en .NET 5 .

Diferencias con CPython

Existen algunas diferencias entre la implementación de referencia de Python CPython y IronPython. [22] Se sabe que algunos proyectos construidos sobre IronPython no funcionan bajo CPython. [23] Por el contrario, las aplicaciones CPython que dependen de extensiones del lenguaje que se implementan en C no son compatibles con IronPython, [24] a menos que se implementen en una interoperabilidad .NET. Por ejemplo, NumPy fue envuelto por Microsoft en 2011, lo que permite que el código y las bibliotecas que dependen de él se ejecuten directamente desde .NET Framework. [25]

IronPython es compatible con Silverlight (que está en desuso por Microsoft y ya ha perdido el soporte en la mayoría de los navegadores web, a excepción de Internet Explorer 11 que dejará de ser compatible en octubre de 2021 [26] ). Se puede utilizar como motor de secuencias de comandos en el navegador al igual que el motor de JavaScript . [27] Los scripts de IronPython se pasan como scripts de JavaScript simples del lado del cliente en