Reflexiones sobre la liberación de Java
Hace un par de días que SUN decidió, tras mucho tiempo de darle vueltas y más vueltas, liberar su plataforma Java, y lo hizo eligiendo nada más y nada menos que la licencia GPL. Podía haber utilizado otro tipo de licencia como la CDDL utilizada en Solaris, o alguna otra como la de Apache, o la BSD, pero ha elegido la GPLv2, paradigma del software libre donde los haya, lo que a mi entender supone un fuerte impulso a su compromiso con esta filosofia. Desde luego, otra cosa son las motivaciones que le hayan podido llevar a elegir esta licencia, ya que al fin y al cabo, SUN sigue siendo una empresa, una gran empresa.
En lo que a mi respecta, y desde mi desconocimiento, puedo imaginarme algunos de los motivos que le han llevado a esta decisión.
Pese a ser una gran empresa informática, SUN no obtiene el grueso de sus beneficios del software, sino del hardware, por lo que liberar Java, en principio, no es algo que vea como un gran riesgo para ella. De hecho, es de esperar que con esta decisión surjan nuevas implementaciones y tecnologías, que seguramente harán incrementar su porcentaje de ventas. En cuanto al tipo de licencia, podría haber elegido cualquiera de las existentes, pero estaba bastante claro que tenía que elegir una que comulgase con la comunidad de desarrolladores y que no dejase la liberación en un simple plufff
, que es lo que habría pasado si hubiera elegido la CDDL. De esta forma el impacto mediático ha sido mucho mayor, y seguramente será algo que aproveché con otras tecnologías como Solaris. Pero, ¿por qué elegir GPLv2 en vez de la licencia Apache o BSD? Bueno, la respuesta viene dada más o menos en sus faq, aunque resumiendo, lo que yo entiendo es que es la que mejor defiende sus intereses. Con ella se garantizan que cualquier desarrollo que se haga a partir suya seguirá siendo GPLv2, obligando a la posible competencia que podría surgirles, a trabajar con las mismas reglas. Al fin y al cabo, las diferencias entre estos tipos de licencias pueden no ser muchos, pero sin embargo, representan las posiciones diametralmente opuestas en cuanto a la filosofía del software entre los movimientos Free Software y Open Source.
En esta ocasión SUN se ha incorporado a las filas de la FSF, pero intuyo que más que por comulgar con sus idales al 100%, lo han hecho por su propio interés, ya que una licencia Apache o BSD daría más libertad a la competencia para crear productos derivados. De hecho, esto explicaría también la decisión de usar la licencia GPLv2 en todo salvo en las bibliotecas de clases y en las partes de la VM que exporten APIs, en cuyo caso añaden la Classpath exception
, muy similar a la licencia LGPL. Con estas dos licencias se garantizan que nadie creará productos o herramientas propietarias derivadas, y que sin embargo, cualquier empresa podrá seguir realizando software propietario basado en Java.
Aparte de estas cuestiones referentes a sus motivos, deberíamos preguntarnos qué repercusiones puede suponer esta liberación, que pueden ser muchas y en diferentes ámbitos, como en el de sistemas hardaware, en el de sistemas operativos, o el desarrollo de aplicaciones de escritorio o web. Responder a todo esto es muy amplio, así que voy a dar mi opinión sobre dos temas que puedo controlar algo más: el mundo del desarrollo de aplicaciones web, y el mundo de los sistemas operativos linux, en relación con la existencia de otro gran proyecto como es Mono.
En lo que respecta al desarrollo de aplicaciones web, antes de nada, es necesario hacernos una fotografía del estado actual de las tecnologías existentes. Podríamos dividir el mercado en 3 participantes principales, .NET, Java y PHP, incluyendo en este último por simplificar, diversos lenguajes interpretados como Perl o Ruby.
Hoy en día parece claro que los desarrollos web basados en Java están pensados para grandes proyectos, principalmente para grandes corporaciones, bancos o instituciones públicas, mientras que los otras dos tecnologías están más orientadas a pequeños y medianos proyectos. Por supuesto esta división es muy vasta, es cierto que se pueden desarrollar grandes aplicaciones con PHP, como la Wikipedia, y pequeñas aplicaciones de andar por casa en Java, pero no es lo habitual. De hecho, atendiendo a las ofertas de los proveedores de hosting, podemos ver como la mayoría de ellos ofrecen servicios para .NET y PHP, pero muy pocos para Java. Lejos de entrar en polémicas con estas cuestiones, ya que como digo hay multitud de matices, considero que la liberación de Java no va a modificar prácticamente nada esta situación. PHP seguirá utilizándose como el lenguaje más habitual en pequeños desarrollos por los usuarios debido a su sencillez, y se utilizará en proyectos medianos y grandes, dependiendo mucho de su orientación, y siempre por desarrolladores más experimentados que sepan utilizarlo aprovechando todas sus características. .NET se seguirá utilizando en proyectos de tamaño medio, donde la complejidad que añade a lenguajes como PHP se vea compensada con otras cuestiones como reutilización, reducción de costes por utilizar desarrolladores venidos del mundo Visual Basic, o decisiones corporativas que obliguen a utilizar tecnologías de determinada empresa. Java por su parte, seguirá en su aparente reducido pero lucrativo ámbito, orientada a los grandes proyectos, donde la ingeniería del software, la escalabilidad, y la tolerancia a errores, son fundamentales.
Cambiando de tercio, ¿afectará al proyecto Mono? En mi opinión, es posible que le afecte, pero no de forma perjudicial como podriá parecer, sino de forma positiva. Uno de los objetivos principales del proyecto Mono, es permitir la generación de código para Gnome en cualquier tipo de lenguaje, y que pueda funcionar de forma conjunta, algo que ya intentaron anteriormente en Gnome con Corba, y que no dio los resultados esperados. Java sin embargo es monolenguaje, motivo por el cual, entre otros, la gente de Gnome no lo eligieron como tecnología sobre la que sustentar su proyecto. Es previsible que la liberación de Java beneficie al proyecto Mono en el sentido de mejorar la incorporación de este lenguaje a la plataforma, añadiendo así un sinfín de potenciales desarrolladores de aplicaciones Gnome a su mundo. Más allá aún, es seguro que esta liberación aportará mejoras a IKVM, y por tanto a la integración de Java en Mono, pero es también seguro que se podrán obtener multitud de conocimientos sobre el funcionamiento de la VM, o de la compilación Just-in-time, que beneficiarán directamente a toda la implementación de Mono.
Resumiendo, SUN ha dado un gran paso a favor del software abierto, aunque seguramente para muchos podría haber sido aún mayor si lo hubiera hecho estríctamente a favor del sofware libre. Por otra parte, es de esperar que esto tenga diferentes implicaciones en el sector, pero es probable que ninguna de ellas sean desestabilizantes en cuanto al status-quo actual. Otra cosa sería si en un futuro cercano se liberase Solaris, ahí sí que el mundo Linux podría obtener un impulso significativo que le ayudase a conquistar cuota de uso en el mercado de escritorio, bien doméstico o empresarial.
Y tú, ¿qué opinas?
Los comentarios están cerrados.