how concatenate python ironpython cpython

concatenate - Python o IronPython



python 3 concatenate (8)

Bueno, generalmente es más rápido.

No se pueden usar módulos, y solo tiene un subconjunto de la biblioteca.

Aquí hay una lista de diferencias.

¿Cómo se compara IronPython con la implementación predeterminada de Python de Windows en Windows? Si estoy aprendiendo Python, ¿aprenderé un lenguaje sutilmente diferente con IronPython, y qué bibliotecas estaría haciendo sin él?

¿Hay, alternativamente, alguna ventaja para IronPython (sin incluir las clases compiladas de .NET IL) que la haría una opción más atractiva?


Existen algunas diferencias sutiles en la forma de escribir el código, pero la mayor diferencia está en las bibliotecas que tiene disponibles.

Con IronPython, tiene todas las bibliotecas .Net disponibles, pero a expensas de algunas de las bibliotecas "normales" de python que no se han migrado a la VM .Net, creo.

Básicamente, debe esperar que la sintaxis y las expresiones idiomáticas sean las mismas, pero una secuencia de comandos escrita para IronPython no se ejecutará si intenta entregarla al intérprete "regular" de Python. A la inversa, probablemente sea más probable, pero creo que también encontrarás diferencias.


Hay una serie de diferencias importantes:

  1. Interoperabilidad con otros lenguajes .NET. Puede usar otras bibliotecas .NET desde una aplicación IronPython, o usar IronPython desde una aplicación C #, por ejemplo. Esta interoperabilidad está aumentando, con un movimiento hacia un mayor soporte para los tipos dinámicos en .NET 4.0. Para una gran cantidad de detalles sobre esto, vea these two presentaciones en PDC 2008.
  2. Mejor concurrencia / soporte multi-core, debido a la falta de un GIL. (Tenga en cuenta que GIL no impide el subprocesamiento en una máquina de un solo núcleo, solo limita el rendimiento en máquinas de varios núcleos).
  3. Capacidad limitada para consumir extensiones de Python C. El proyecto de Ironclad está haciendo grandes progresos para mejorar esto --- ¡casi han conseguido que Numpy funcione!
  4. Menos soporte multiplataforma; básicamente, tienes el CLR y Mono . Sin embargo, Mono es impresionante y se ejecuta en muchas plataformas, y tienen una implementación de Silverlight, llamada Moonlight .
  5. Informes de rendimiento mejorado, aunque no he estudiado esto con cuidado.
  6. Retraso de funciones: dado que CPython es la implementación de referencia de Python, tiene las características "más recientes y mejores" de Python, mientras que IronPython necesariamente está rezagado. Muchas personas no encuentran que esto sea un problema.


Python es Python, la única diferencia es que IronPython fue diseñado para ejecutarse en CLR (.NET Framework) y, como tal, puede interoperar y consumir ensamblados .NET escritos en otros lenguajes .NET. Entonces, si su plataforma es Windows y también usa .NET o su compañía sí, debería considerar IronPython.


También depende de si desea que su código funcione en Linux. No sé si IronPython funcionará en cualquier cosa al lado de las plataformas de Windows.


Uno de los pros de IronPython es que, a diferencia de CPython, IronPython no usa el bloqueo de intérprete global, lo que hace que el enhebrado sea más efectivo.

En la implementación estándar de Python, los hilos toman el GIL en cada acceso de objeto. Esto limita la ejecución paralela, lo que es importante especialmente si espera utilizar completamente varias CPU.