Recordando el caso antimonopolio Microsoft vs Sun Microsystems

By marjuanm | msproys | 21 Aug 2021


Recordando la batalla legal de Microsoft con Sun

Sun Microsystems vs Microsoft | Cortesía de SD Times

Que tal, un saludo para todos y gracias por seguir visitando este blog:

  Como comenté hace algunos meses, después de unos 15 años pude recuperar algunas de mis viejas revistas de informática, de vez en cuando les doy una leída para recordar jejeje. Pues bien, volviendo a analizar un artículo aparecido en la revista "Mecánica popular" de mayo de 1998 hay un artículo que he pensado compartir con todos ustedes, de hecho hace tiempo he pensado en esta sección, compartir mi opinión sobre un artículo de aquel entonces y como ha cambiado el tiempo a favor o en contra de ese tema. Por lo que esos artículos de análisis van a llevar al inicio la leyenda "Recordando" y voy a citar la revista, vamos a ver que tal pinta esto.

  Por aquel entonces apenas daba mis primeros pasitos en la red y programaba ya un poquito en lenguaje C, compraba mucho revistas de informática porque quería estar al día en estos temas, aunque la verdad no entendía mucho en ocasiones. Pues bien, en esta revista en esa ocasión publicaron un artículo titulado "Monopolios y libertades", donde se narraba de manera general el conflicto legal entre Microsoft y Sun Microsystems por la implementación de Java por parte del primero sin respetar mucho la implementación original de Sun, pero vayamos por partes para entenderlo mejor.

  Por aquel entonces no tenía idea de que existía un lenguaje de programación llamado Java (lo único que había tocado en aquel entonces era C y sabía que existía Pascal porque algunos compañeros en los bachilleres (escuelas técnicas) les habían enseñado este lenguaje, y claro, nociones generales de que era el lenguaje Ensamblador), por lo que no entendí muy bien el tema sino hasta unos años más tarde cuando empecé a programar en este lenguaje por cuenta propia gracias a un libro de la biblioteca que enseñaba a programar en Java.

  Me pareció estupenda la propuesta de Sun de crear un lenguaje de programación que no estuviera atado a ningún sistema operativo en particular, esto no sucede con los lenguajes tradicionales, ya que el compilador (el encargado de convertir nuestro programa  a lenguaje máquina para que pueda ser ejecutado) transforma nuestras instrucciones a lenguaje máquina pero siempre quedando enlazado a la arquitectura del sistema operativo donde se compiló el programa; esta es la razón por la que un programa hecho en C (por ejemplo) no puede ejecutarse en Linux o en Mac (ahorita ya hay más facilidades gracias a WINE por ejemplo), necesitaríamos entregarle a alguien más el código fuente de nuestro programa y allá mediante un compilador para esa plataforma volver a reconstruir la aplicación.

  Pues eso ya no sucedía con Java, gracias al lenguaje Java ahora no se generaba un ejecutable clásico, sino un ejecutable que era interpretaba al vuelo sobre la máquina destino, siempre y cuando hubiera dicho intérprete en ese sistema operativo. Cosa que efectivamente Sun Microsystems proveyó, máquinas virtuales (interpretes) de Java para diversos sistemas operativos, entre ellos Microsoft Windows

  Claro que esto no le hizo mucha gracia a Microsoft, en ese entonces la empresa de Redmond era poco amigable con la competencia (en la actualidad sigue igual, pero más disimulada), a Microsoft no le convenía para nada que de pronto un programador comenzara a desarrollar programas no solo para Windows, sino para otros sistemas operativos, y si esto tenía exito pues podría pronto tener clientes en otros ambientes que no controlaba Microsoft, ¿el resultado?, que la competencia podría beneficiarse mucho de la llegada de programadores del mundo Windows e incluso portar programas completos para Linux (por ejemplo) usando Java como puente, lo que dejaba fuera a las herramientas de Microsoft y quizá con el tiempo al sistema operativo completo.

  Este artículo se centró en las acciones emprendidas por Microsoft en aquel entonces: aunque la propuesta de Sun era estupenda tenía varias carencias. Al querer Sun que un programa fuera universal se tuvieron que quitar muchas cosas comunes en varios sistemas operativos, por ejemplo: mediante la AWT de Java (el conjunto de controles básicos - botones, listas de selección, etc - para programar) no era posible por ejemplo disponer de una vista de árbol (la que se usa para listar el contenido de una carpeta e ir expandiendo los directorios, por ejemplo) ni de listas que llevaran imágenes u otros controles comunes en aplicaciones Windows, no, AWT solo tenía botones básicos, listas de selección, botones de selección, etc, pero siempre poco personalizables porque estas características no existían en los sistemas operativos de la competencia (en aquel entonces claro está).

  Así que a la larga el Java de Sun se quedaba corto contra lo que necesitábamos realizar y ahí fue donde Microsoft aprovechó para frenar a la competencia en seco. Decidió crear su propia máquina virtual, la "Microsoft Java Virtual Machine" (MJVM) que si incorporaba estas facilidades (además de las propias de Sun) pero incompatible con la "Java Virtual Machine" (JVM) de Sun. También por supuesto proveyó un entorno de programación llamado "Microsoft Visual J++" que era muy similar a usar Visual Studio y permitía crear con poco esfuerzo programas muy profesionales usando Java (el de Microsoft desde luego).

  El artículo en esta revista reseñaba de manera generalizada el juicio en contra de Microsoft por esta práctica monopólica y la posible pérdida por parte de Microsoft siendo obligada a pagar una cuantiosa multa (que si ocurrió tiempo después) y el grave daño que haría Microsoft a la comunidad de Java (cosa que también sucedió tiempo después). Aunque Microsoft no logró detener el avance de Java (con todas las amenazas que esto representaba para su imperio) si logró frenar a la competencia. ¿de qué manera?.

  De acuerdo con un artículo de la Wikipedia que uso para complementar a este post, Microsoft terminó pagando 20 millones de dólares a Sun y como parte del acuerdo, Microsoft no proveyó de manera nativa una máquina virtual de Java con Windows XP, si el usuario lo deseaba, debía descargarla e instalarla por si mismo, esto era bueno y malo al mismo tiempo. Bueno porque ya no se seguiría distribuyendo la Microsoft Java Virtual Machine y seguir segmentando el desarrollo de aplicaciones Java, pero malo porque ahora el usuario debía instalarla (la maquina virtual de Sun o de Microsoft) por su cuenta, pero siendo honestos, el usuario promedio no sabe mucho del tema y se va a quedar simplemente con la noción de que "la página no carga" (claro, porque falta JVM) y los applets tan comunes en aquel entonces no se mostrarían y terminaría abandonando la web pues no pudo ver nada.

  Además, muchos empleados de cybercafés en aquel entonces tampoco estaban muy duchos para esto de instalar Java, Flash, etc, además de que Windows XP no permitía instalar nada si no se iniciaba con una cuenta con permisos administrativos, o por lo menos supiéramos la contraseña de ese usuario al querer instalar algo desde una cuenta común y corriente. Me tocó casos donde el encargado no sabía ni de que se trataba la cosa, lamentablemente esa fue la realidad y el ganador ahí fue Microsoft, ya que muchas webs no se iban a mostrar si no estaba preinstalada una maquina virtual para Java (mismo caso para ejecutar aplicaciones puras en Java).

  Otro golpe que recibiría Java tiempo después fue el lanzamiento del .NET Framework de Microsoft, este es a grandes rasgos una maquina virtual pero para lenguajes de programación de Microsoft, es posible programar aquí en Visual Basic por ejemplo y que nuestros programas corran sin problemas en todas las versiones de Windows sin tener que instalar nada adicional. Con Visual Basic clásico tenemos que llevar todos los ActiveX, dlls y demás archivos a la máquina destino, pues de lo contrario no correrá nuestro programa; además, un programa diseñado usando componentes propios de Windows 7 es probable que no se ejecute en Windows XP porque dichos componentes no existen en ese sistema operativo. Pero gracias al .NET de Microsoft ya no pasa esto (o al menos ya no tan crítico como antes).

  .NET al estar inspirado en la idea de Sun aprovecha las ventajas que este propuso. Los programas en .NET requieren de la máquina virtual de Microsoft, pero esta fue distribuida mediante los service pack, conjunto de actualizaciones de Windows y también ya integrada de manera nativa en los Windows siguientes, así que había una maquina virtual para .NET siempre y no había necesidad de instalar nada, también estos entornos proveen herramientas comunes para todos los Windows, así que no tenemos el problema de que mi aplicación tenga controles visuales arcaicos porque no existen en las otras versiones de Windows, no, si hay una versión de .NET para Windows XP, Windows 7 o Windows 10 no tenemos que preocuparnos de que nuestro programa no vaya a correr porque le falta tal o cual cosa (salvo que programemos en .NET 4.5 y lleváramos ese programa a XP donde no existe esta versión, ahí si podría nuestro programa fallar si usamos alguna característica exclusiva para esta version de .NET).

  Tampoco tenemos que preocuparnos porque se nos olviden librerías, si usamos algunas de ellas que "podrían" no estar en la otra Pc, nuestro entorno de programación para .NET nos adjunta las dlls que usamos en nuestro directorio al momento de compilar (Sharpdevelop lo hace, ignoro la situación en otros entornos de programación). Esto nos permite crear aplicaciones "totalmente portátiles" en .NET, adiós al problema de dlls faltantes que era tan común usando otros entornos de desarrollo.

 Conclusiones:

  Microsoft si frenó el avance de Java dentro de sus terrenos, sin embargo lo que hizo está mal y se llevó una multa por ello, también producto de esto Java no pudo entrar de lleno en el mundo Windows como se esperaba y como resultado, no es que no tuviera presencia en este sistema operativo, pero siempre se quedó como "una opción más".

  Dentro de los puntos positivos ahora muchas empresas de desarrollo han optado por el modelo "Maquina virtual" para trabajar (entre ellas Microsoft), esto tiene muchas ventajas como ya se ha mencionado en el artículo. Aunque Java no consiguió hacerse un hueco tan grande dentro del mundo Windows, si es fuerte en otros aspectos y sigue dando batalla, su modelo de trabajo ha sido copiado y aunque no se trate del entorno que nos dijeron "era el futuro" al menos la esencia de Java sigue ahí.

 

 

 

 

How do you rate this article?

1


marjuanm
marjuanm

I'm a VB.NET Programmer, but too programming on PHP, greetings.


msproys
msproys

Blog informático para dar a conocer mis proyectos, soy desarrollador de sistemas y partidario del software libre. Por medio de este blog estaré dando a conocer algunos de mis trabajos, así como publicando diversos códigos fuentes útiles.

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.

Page not displaying correctly?