Sobre .Net, Ximian, DotGNU, Mono y su navaja


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:

  • http://www.ximian.com/newsitems/mono_announce.php3
  • http://www.microsoft.com/net/
  • http://www.go-mono.com/
  • http://barrapunto.com/article.pl?sid=01/07/29/104203&mode=flat
  • http://www.zdnet.com/intweek/stories/news/0,4164,2799210,00.html
  • http://slashdot.org/article.pl?sid=01/07/28/041204
  • http://barrapunto.com/article.pl?sid=01/07/29/104203
  • http://www.linuxworld.com/linuxworld/lw-2001-07/lw-07-mono.html
  • http://iwsun4.infoworld.com/articles/op/xml/01/07/30/010730oppetreley.xml
  • http://msdn.microsoft.com/net/ecma/Partition_I_Architecture.pdf
  • http://msdn.microsoft.com/net/ecma/WD05-Review.pdf
  • http://windows.oreilly.com/news/hejlsberg_0800.html
  • http://www.ddj.com/articles/2001/0105/0105a/0105a.htm
  • http://msdn.microsoft.com/net/ecma/PDF.zip
  • http://www.w3.org/XML/
  • http://www.w3.org/TR/SOAP/
  • http://xml.coverpages.org/uddi.html
  • http://www.microsoft.com/net/hailstorm.asp
  • http://www.passport.com/
  • http://msdn.microsoft.com/net/ecma/
  • http://www.ecma.ch/
  • http://www.go-mono.com/faq.html
  • http://msdn.microsoft.com/net/thirdparty/default.asp
  • http://www.dotgnu.org/
  • http://www.ximian.com/tech/bonobo.php3
  • http://www.dotgnu.org/web-services.htm
  • http://www.go-mono.com/passport.html
  • http://www.go-mono.com/Presentations/O-Reilly/mgp00014.html
  • 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.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.