Ximian, con Miguel de Icaza a la cabeza, han
decidido
implementar(1) parte (C# y las bibliotecas de clases) de la arquitectura .Net
de Microsoft(2) en versión Software Libre: el proyecto
Mono(3). El proyecto ha despertado mucha
controversia, pero quizás lo más importante sea una huida hacia adelante de
Ximian para abandonar su fracasado proyecto Bonobo y atraer nuevamente la
atención de la comunidad hacia la empresa.
DISCLAIMER: sobre todo para los de Barrapunto/Gnome que están ofendidísimos(4), este artículo refleja mi opinión, y la de algunos otros… nada más.
ACTUALIZACIÓN: Miguel de Icaza hace un llamado(5) a las armas
La controversia (Slashdot(6),
Barrapunto(7), LinuxWorld(8),
Infoworld(9)…)
se ha animado desde que se han corrido rumores de que Microsoft colaboraría en el
proyecto Mono. Algunos dicen que es es una trampa para aplicar el “abrazar y
extender” típico de Microsoft: hacer que la comunidad tenga una versión
de su arquitectura y luego cambiar el estándar para obligar a los
desarrolladores y clientes a pasarse a
Microsoft.
¿Que es .Net?
.Net es una estrategia de Microsoft que tienes dos facetas importantes:
- Cambiar toda la arquitectura de Windows, incluido el API Win32 hacia una
arquitectura más homogénea y transparente. Se dejará de lado las MFC, COM,
DCOM, ADO, etc., etc. para unificarlo en .Net. El núcleo de .Net es una
infraestructura basada en un infraestructura
de lenguages común(10) (CLI: Common Language
Infraestructura) y CLR (Common Language Runtime) similar
a la máquina virtual de Java, un nuevo lenguaje C#(11) (Ci sharp
o C sostenido, que fue diseñado por Anders
Hejlsberg(12), el creador de Turbo Pascal y ganador del Dr.
Dobb’s Journal’s Excellence in Programming Award for 2000(13)), que es muy similar a Java y las bibliotecas de clases(14)
que permitirán ser desarrolladas, extendidas y usadas por cualquier
lenguaje que tenga su compilador a CLI. Las bibliotecas de clases
implementan todos los servicios que permitirán el intercambio de
información y usará lenguajes estándares y bien establecidos como XML(15),
SOAP(16) (Simple Object Access Protocol) y UDDI(17) (Universal
Description Discovery and Integration). - Una estrategia de negocios y servicios de pagos e identificación
electrónica basadas en la arquitectura .Net. El servicio será el Hailstorm(18)
que estará basado en Passport(19)
y los servicios ofrecidos por Hotmail. Básicamente el servicio Hailstorm es
una especie de monedero virtual y certificación de identidad de los
clientes. Microsoft ya está promocionando Passport de forma muy agresiva firmando
convenios(9) con American Express, eBay, VeriSign, y una docena de sitios
de comercio electrónico populares.
¿Que es el proyecto Mono?
Mono implementará las tecnologías de .Net que han
sido propuestas(20) como estándar ECMA(21).
Según el FAQ(22), Mono consistirá de
un conjuntos de componentes que servirán para la construcción de software:
- Una máquina virtual CLI que tendrá un cargador de clases, un compilador
just-in-time y unas rutinas de gestión de memoria en tiempo de ejecución (garbage collecting runtime). - Una biblioteca de clases que trabajará con cualquier lenguage que trabaje
sobre CLI. - Un compilador para el lenguaje C#. En el futuro podrá trabajar con otros
compiladores que generen código CLI. Microsoft ya
tiene compiladores(23) que trabajan con los siguientes lenguajes:
C#, ASP (un nuevo lenguaje llamado ASP.Net), Visual Basic .Net, APL, Cobol, Component Pascal, Eiffel, Haskell, Mercury, Oberon, Perl, Python, Scheme, Smalltalk, Standard ML.
Los planes inmediatos de Ximian serán las de tener la máquina virtual y
compilador de C# funcionando sobre Linux a finales de este año (2001). Sólo
permitirá ejecutar código generado por el compilador Microsoft .Net.
El proyecto Mono no incluye servicios similares a Hailstorm, estos están
siendo desarrollados por GNU en el proyecto DotGNU(24)
y que intenta reemplazar a dichos servicios.
DotGNU
La DotGNU(24) no será una implementación
GNU de los servicios Hailstorm, sino que será un reemplazo usando otro tipo de
tecnologías. Básicamente la arquitectura de Hailstorm es centralizada,
especialmente en los servicios de autentificación y autorización. DotGNU
usará una paradigma descentralizado. Ninguna compañía, servidor u
organización controlará la autorización.
La plataforma DotGNU consistirá de dos componentes principales:
- DotGNU Secure Execution Environment: este
componente podrá descargar bytecodes de la red y ejecutarlo de forma
segura. - DotGNU Distributed Execution Environment: será
una especie de sistema operativo que consistirá de distintas instancias del
DotGNU Secure Execution Environment que se ejecutan en distintos ordenadores
como si fuese un único ordenador distribuido. El sistema será capaz de
asegurar la replicación de la base de datos a través de todas las partes
de un “ordenador distribuido”.
Ventajas y peligros de .Net en Linux
La primera observación es que Ximian podría abandonar su
“fracasado” (o en el mejor de los casos retrasado) proyecto
Bonobo(25), un sistema de componentes basado en Corba, para continuar los
futuros desarrollos en la arquitectura CLI/.Net de Mono.
En su artículo en Infoworld, Nicholas
Petreley(9) plantea los peligros potenciales del desarrollo en Open Source
de la arquitectura .Net. Según Petreley, el proyecto Mono podría destruir
el Open Source. La razón más importante es que Mono no ataca el
problema principal, Hailstorm, sino sólo una parte y la menos problemática, la
tecnológica. Según Petreley, si se empieza a usar Mono en Linux en un futuro
próximo prácticamente todos las aplicaciones de Linux dependerán de que
Microsoft mantenga el estándar y evite modificaciones que lo rompan. De ocurrir
así, a los programadores no podrán evitar migrar a Microsoft para poder seguir
usando los servicios de Hailstorm y Passport. O sea, Microsoft lo tendrá muy
fácil para aplicar sus técnicas de “extender y abrazar”
prácticamente sin coste alguno.
En un artículo(8)
en Linuxworld, Joe Barr hace un análisis menos pesimista basado en entrevistas
a Miguel de Icaza y Nat Friedman, ambos cofundadores de Ximian. Según ellos,
Mono permitirá una migración más suave de los desarrolladores .Net al entorno
Linux, además de permitir una renovación total de los sistemas de desarrollo
en Linux. Y si además se logra que la arquitectura .Net esté presente en todos
los sistemas, le será muy difícil a Microsoft desviarse del estándar, ya que
muchos usuarios ya no podrán usar los servicios ofrecidos por Microsoft/Hailstorm.
Por otro lado, la GNU es muy
crítica(26) con el proyecto Hailstorm y los proyectos web en general de
Microsoft, ya que obligaría a los usuarios a transferir y almacenar todos sus
datos en servidores de Microsoft y les impediría ejecutar programas desde su
propio CD.
Sea lo que fuese lo que depara el futuro, está claro que C# es un muy buen
lenguaje, que a diferencia de Java es un estándar internacional. Que .Net es
una arquitectura uniforme y que permitirá ejecutar los mismos programas en
distintos tipos de ordenadores y sistemas y podrán interactuar entre ellos
usando lenguajes y protocolos estándar como el XML y SOAP.
O sea, necesitamos una alternativa libre a .Net y Hailstrom/Passport(27).
Aunque soy pesimista, ya tienen bastantes cosas
desarrolladas(28). Así que buena suerte a Mono (y DotGNU).Lista de enlaces de este artículo:
Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=767 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.