En ocaciones no te has sentido raro (como diria el noeito… como bichopalo), o algo marginadito por tu codigo, ya que el lenguaje que mas quieres y que mas te gusta, en tu ambiente laboral, no vale mucho la pena “para nadie”, ya que todo tu gremio laboral es .Net.
Creo que con IronPython, te llegaras a sentir un poquito mas motivado.
Analicemos un pedacito de codigo IronPython:
import clr
from System.IO import *
fichero = File.OpenText("mifichero.txt")
linea = fichero.ReadLine()
while s:
print linea
Sencillo ?
Para utilizar bibliotecas de .NET adicionales, deberas importar el módulo CLR y, posteriormente, ensamblados específicos a los que se hara referencia. Los ensamblados de bibliotecas adicionales se pueden importar y utilizar sin ningún tipo de problema.
import clr
clr.AddReference("System.Xml")
from System.Xml import *
d = XmlDocument()
Ampliar IronPython con C# es muy fácil. Puedes cargar una DLL que ya has creado con c# en mi caso “csextend.dll.
Este es el codigo de csextend.dll
using System;
using System.Collections;
public class Simple {
private int data;
public Simple(int data) {
this.data = data;
}
public override string ToString() {
return String.Format("Simple<{0}>“, data);
}
}
Ahora lo incorporamos a IronPython… de super lujo ……
>>> import clr
>>> clr.AddReferenceToFile("csextend.dll")
>>> import Simple
>>> dir(Simple)
['Equals', 'GetHashCode', 'GetType', 'ToString',
'__new__', '__repr__']
Ahora que tienes mas idea de Iron
Un ejemplo que correo sobre Windows (Lo saque de la revista linux magazine):
import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
from System.Drawing import Color, Point
from System.Windows.Forms import (Application, BorderStyle, Button, Form, FormBorderStyle, Label, Panel, Screen)
class HolaMundo(Form):
def __init__ (self):
self.Text = "Hola Linux Magazine"
self.FormBorderStyle = FormBorderStyle.FixedDialog
pantalla = Screen.GetWorkingArea(self)
self.Height = pantalla.Height / 5
self.Width = pantalla.Width / 5
self.panel1 = Panel()
self.panel1.Location = Point (0,0)
self.panel1.Width = self.Width
self.panel1.Height = self.Height
self.generaSaludo()
self.panel1.Controls.Add(self.label1)
self.Controls.Add(self.panel1)
def generaSaludo(self):
self.label1 = Label()
self.label1.Text = "Hola lectores de Linux Magazine"
self.label1.Location = Point(20,20)
self.label1.Height = 25
self.label1.Width = self.Width
form = HolaMundo()
Application.Run(form)
Conclusion
Los lenguajes dinámicos son los que hacen que el desarrollo de software sea más rápido y que los procesos iterativos funcionen correctamente. Su naturaleza, que ofrece posibilidades de investigación, los hace más atractivos para los desarrolladores y para aquellos que pueden disfrutar de ellos simplemente con una consola interactiva.
Como puedes empezar con iron…. mas informacion aqui http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=47
