domingo, mayo 08, 2005

.NET en MacOS X

Nadie puede dudarlo, .NET ha supuesto una revolución en el concepto de la programación.

Al igual que ocurrió en su dia con la orientación a objetos, Microsoft ha dado un nuevo paso en la evolución de los paradigmas de programación. La plataforma .NET nos ofrece una serie de conceptos muy atractivos de cara al desarrollador.
Una de ellas es la integración de diferentes lenguajes de programación. Otra es el desarrollo del paradigma de los web services, cada dia más importante dentro de los entornos corporativos.

Pero quizá la más conocida sea el desarrollo del lenguaje de programación C#. Los programadores de Java probablemente tienen un dejà-vu contínuo cuando programan bajo este lenguaje, pero aporta una derivación bastante atractiva del C++. El principal atractivo de C# radica en la amplia biblioteca de funciones disponibles intrínsecamente en el lenguaje. Con ello, ya no debemos de preocuparnos en implementar (por ejemplo) un lector de XML o en abrir y cerrar flujos al leer archivos, ya que dentro del mismo lenguaje vienen definidas estas funciones. No voy a pararme a explicar la arquitectura de .NET, mejor leer esto.

La idea es demasiado atractiva como para dejarla exclusivamente para entornos Windows. Por ello, en el año 2001 (año de lanzamiento de la plataforma si no me equivoco), surgieron paralelamente dos proyectos encargados de desarrollar una implementación libre de la plataforma .NET. Y como era de esperar, tampoco se centraron en GNU/Linux, sino que fueron portados a otras plataformas:

Proyecto Mono: Iniciado por Miguel de Icaza como sucesión del frustrado proyecto Bonobo, cuyo principal objetivo era crear una serie de componentes que fueran totalmente reutilizables. La lentitud del proyecto y la aparción de .NET motivaron un cambio de rumbo dentro del proyecto GNOME y en lugar de usar C++, se optó por hacer una implementación libre de .NET como reemplazo de dicho proyecto.

DotGNU: Iniciado por la Fundación del Software Libre, constituye una alternativa a Mono, del cual se alimenta para la implementación de ciertas librerías. Está algo retrasado con respecto a Mono, ya que mientras Mono está ya implementado la versión 2.0 de .NET, DotGNU se centra en la versión 1.1. Otra carencia importante es el servidor de ASP.NET. Sin embargo, adelanta a Mono en la implementación de Windows.Forms, ya que optó desde un principio por una implementación nativa, en lugar de usar Wine como hizo Mono (actualmente también se centra en una implementación nativa). Como último apunte, cabe destacar que DotGNU lo he visto funcionar en una PlayStation 2.

Rotor: La implementación oficial de Microsoft, distribuida bajo su licencia "Shared Source". No la he probado a fondo, así que no puedo opinar. Cabe destacar que funciona bajo FreeBSD y MacOS X.

En el tema de implementaciones, en MacOS X hay variedad, el problema viene en los IDE's. Hasta ahora, no he visto funcionar MonoDevelop en Mac, aunque parece ser que con un poco de paciencia es posible. Sí puedo hablar por el contrario de Eclipse con el plugin de C# y Xcode con otro plugin destinado a la misma tarea. La principal carencia es el "code completion", ya que dichos plugins sólo ofrecen el "syntax highlighting".

Habrá que seguir la evolución de dichos proyectos.

No hay comentarios: