IronPython

De Viquipèdia
Dreceres ràpides: navegació, cerca
IronPython
Desenvolupador(s) Dino Viehland
Versió estable

2.7.3 (Final)

/ Juliol 6, 2012; fa 2 anys (2012-07-06)
Escrit en C#
Plataforma .NET Framework, Mono
Tipus Intèrpret de Python
Llicència Apache License, v2.0
Lloc web ironpython.net

IronPython és una implementació del llenguatge de programació python orientat en el entorn de treball .NET i Mono, creat per Jim Huguinin. La versió 1.0 va ser llençada al 5 setembre del 2006. La versió 2.0 va ser llençada al 10 de desembre del 2008. IronPython està escrit enterament en C#, encara que part del seu codi és generat automàticament per un generador de codi escrit en Python.

Estat i fulla de ruta[modifica | modifica el codi]

La versió actual (1.1.2) té com a objectiu la compatibilitat amb CPython 2.4.4. Encara que, existeixen diferències entre les implementacions de referència de Python i IronPython. és conegut que alguns dels programes construïts sobre IronPython no treballen sota CPython. Per contra, aplicacions fetes amb CPython que depenen de les extensions al llenguatge que sé executen en C (per exemple, NumPy) no són compatibles amb IronPython. Encara que un suport comercial de codi obert per fer front ha aquest projecte està en camí. La versió 2.0, va ser llençada el 10 de desembre del 2008, que tenia com a objectiu la compatibilitat amb Cpython IronPython 2.0 està construït sobre la Rutina de Llenguatge Dinàmic(RLD) que conté un sistema de tipus dinàmic resumint del llenguatge ubicat a IronPython 1. Com que el RLD se executa sobre la base de CLR que es lliurarà amb la pròxima SilverLigtht2, IronPython por ser utilitzat pèl client com intèrpret de comandes del navegador amb SilverLigtht.

Llicència[modifica | modifica el codi]

Fins a la versió 0.6, IronPython va ser llicenciat dintre del marc de la llicència Pública. Després de la contractació del cap del projecte en agost del 2004, es va posar a disposició IronPython com a part de la iniciativa “Microsft's Shared Source”. Els autors afirmen que la llicència, encara que no està revisada per la OSI (Open Source Initiative), s'ajusta a la definició de codi obert. Amb el llançament de la versió 2,0 en estat alfa es va adoptar la llicència Microsoft Public License.

Interfície d'extensibilitat[modifica | modifica el codi]

Una de les principals avantatges de IronPython és la seva funció com a capa d'extensibilitat en entorn de treball escrit en .NET. És relativament fàcil integrar un intèrpret de IronPython en un entorn de treball existent fet en .NET. Un cop en funcionament, els desenvolupadors poden utilitzar els guions de comandes escrits en IronPython per que interaccionin amb l'entorn de treball de .NET, ampliant així la funcionalitat de la interfície dintre del entorn de treball sense canvia el codi font de tot l'entorn de treball. IronPython fa un ampli ús de la reflexió. Quan introdueixes una referència a un objecte .NET, automàticament s'importen les dades associades disponibles per a aquest objecte. Això resulta ser altament intuïtiu per treballar amb els objectes .NET amb un guió de comandes de IronPython.

Exemples[modifica | modifica el codi]

El següent guió de comandes fet amb IronPython manipula l'entorn de treball .NET. Aquest guió de comandes pot ser executat per un tercer al costat del client i desenvolupador d'aplicacions i és enviat al servidor passant per l'entorn d'una interfície, tenint en compte que ni la interfície ni l'entorn de treball han estat modificats per recolzar l'anàlisi del client.

 from BookService import BookDictionary
 
 booksWrittenByBookerPrizeWinners = 
   [book.Title for book in BookDictionary.GetAllBooks() if "Booker Prize" in book.Author.MajorAwards]

En aquest cas, s'assumeix que l'entorn de treball implementa una classe, BookDictionary, en un mòdul anomenat BookService, i publica una interfície en la que es pot enviar i executar un guió de comandes de IronPython.

Aquest guió de comandes, quan s'envia a la interfície, cercarà la llista de llibres mantinguts per l'entorn de treball i escollirà els texts dels autors guanyadors del premi Booker. El més interessant és que la responsabilitat sobre l'escriptura real de l'anàlisi s'efectua en el costat del client. Els requisits per part del servidor són mínims, essencialment només facilita l'accés a les dades mantingudes pel servidor. Aquest disseny simplifica enormement el desenvolupament, desplegament i manteniment de la complexa aplicació de l'entorn de treball.