Un vistazo al proyecto Mono. Segunda Parte: ¿Por qué clonar la tecnología de MS?

De Grupo GNU/Linux de la Universidad del Cauca
Revisión a fecha de 04:53 4 dic 2013; LibardoPantoja (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Septiembre 15 de 2.004

Por Manuel Alejandro Cerón Estrada.


En la primera parte de este artículo mencioné que el objetivo principal del proyecto Mono era brindar una plataforma que facilite y haga más productivo el desarrollo de software para GNU/Linux. Después de escuchar esto, muchas personas se preguntarán: ¿Pero por qué clonar la tecnología de -la tan odiada- Microsoft? ¿Por qué no crear una nueva e innovadora plataforma? ¿Por qué no usar Java? Etc. En esta segunda parte trato de dar respuesta a estas y otras preguntas que surgen respecto a este proyecto.

Ventajas de clonar .NET

La principal ventaja de implementar .NET es que esta tecnología ha sido liberada como un estándar de la ECMA[1]. Todas las especificaciones están disponibles para cualquiera que quiera hacer una implementación. Con esto los desarrolladores de Mono se ahorraron una gran cantidad de esfuerzo en análisis y diseño, cosa que no pasaría si hubieran decidido crear una nueva plataforma de desarrollo.

El hecho de que mono sea una implementación del Framework de .NET de Microsoft también facilita la obtención de documentación. Por lo general encontrar libros sobre desarrollo de software con herramientas libres es difícil. Aquí en Colombia debemos tener mucha suerte para encontrar dos o tres libros sobre sobre desarrollo con GCC, GNOME, KDE o PHP (tal vez este último sea el más común), y ni hablar de los entornos de desarrollo como Vim, Emacs, Kdevelop o Anjuta. Por otra parte, si lo que buscamos es libros sobre alguna tecnología de MS, sea C#, Visual Basic, ASP.NET, ADO.NET, SQL Server, etc., encontraremos montones de libros en toda parte. La ventaja de que Mono esté basado en .NET es que de alguna forma es posible usar toda esa documentación para aprender Mono. De hecho yo mismo lo estoy haciendo, estoy basando mi aprendizaje en dos libros originalmente creados para el .NET de MS: ".NET Framework Essentials"[2] y "Programming C#"[3]. Es verdad que los ejemplos están diseñados para Visual Studio .NET, y que algunas cosas no funcionan bien en Mono todavía (como System.Windows.Forms), pero lo cierto es que la mayoría de la información que hay en estos libros puede ser aplicada a Mono. Esto es algo que beneficia no solo a los desarrolladores de GNU/Linux, sino, especialmente, a los actuales desarrolladores de Windows que deseen desarrollar para sistemas libres. De alguna forma el cambio se les hace menos traumático, y es posible decirles "no vas a tener que aprender todo desde cero para poder desarrollar en Linux".

Además de la documentación, clonar .NET trae la ventaja de aprovechar toda la campaña de promoción que Microsoft está gastando en esta tecnología. Por ejemplo, en las universidades de Colombia, MS está invirtiendo una gran cantidad de dinero en adoctrinar a los estudiantes y profesores en .NET. Esto se está llevando a cabo con las Células .NET, seminarios y charlas gratuitas, donaciones de libros y documentación, descuentos de software, entre otras cosas. Lo bueno de todo esto es que, en cierta forma, es posible utilizar todos estos recursos para aprender Mono. Irónicamente podemos aprovechar el dinero de MS para impulsar el desarrollo de Software Libre.

Además de todas estas ventajas está, por supuesto, el hecho de que técnicamente con Mono va a ser posible ejecutar aplicaciones, creadas para Windows con herramientas de Microsoft, en GNU/Linux. El objetivo de MS es que todo el desarrollo de software para su sistema operativo se mueva hacia .NET. Si esto se hacer realidad, y Mono es capás de ejecutar todas esas aplicaciones en GNU/Linux, sería algo genial, por fin las aplicaciones dejarían de ser una razón de peso para escoger el sistema operativo.

Riesgos y desventajas de clonar .NET

Claro que no todo es color de rosa, y menos si se pisan terrenos de una empresa como Microsoft. Aunque .NET sea un entandar de la ECMA, la verdad es que es una tecnología dominada por esta empresa. Por ahora no parece que Mono sea una gran amenaza para MS, es más, los desarrolladores del proyecto declaran que la gente de Redmond se ha mostrado como "buenos ciudadanos" [4] frente al proyecto. Sin embargo, en el momento en que Mono se convierta en una amenaza, lo más probable es que MS pueda romper fácilmente la compatibilidad entre Mono y su implementación de .NET, ya sea con alguna de sus típicas jugadas sucias o vía patentes de software. De todas maneras, en el caso de que esto pase, lo cual es muy probable, no afectaría, de ninguna manera, el objetivo principal de Mono, lo único con lo que acabaría sería con algunos beneficios adicionales. Mono seguiría existiendo como una plataforma de desarrollo para GNU/Linux, solo que incompatible con el .NET de MS. Miguel de Icaza compara la situación diciendo que GNU/Linux, un clon de Unix, de ninguna manera se vería afectado si SCO [5] decidiera volver Unix incompatible con este. Los desarrolladores de Mono han estado siempre muy atentos a todo esto y han sido cuidadosos para no violar ninguna patente de software y cuando Mono tenga el éxito pienso que va a tener, será poco lo que MS podría hacer contra este.


Referencias

[1] ECMA (http://www.ecma-international.org/) es un comíte internacional que se dedica a la estandarizaciíon de tecnologías de la información y las comunicaciones.

[2] ".NET Framework Essentials" 3a Ed. Por Hoang Lam y Thuan L. Thai. Editorial O'Reilly. 2003

[3] "Programming C#" 3a Ed. Por Jesse Liberty. Editorial O'Reilly. 2003

[4] Tomado del FAQ de la página de Mono: http://www.mono-project.com/about/faq.html#msft

[5] SCO (http://www.sco.com) es la empresa que posee actualmente los derechos sobre el sistema operativo Unix



El contenido del material publicado por nuestros columnistas es responsabilidad de sus autores.

Para saber más sobre la programación y naturaleza de nuestros artículos y columnas, haga clic aquí.