domingo, agosto 15, 2010

La nueva trampa de Java

La demanda iniciada por ORACLE contra Google donde se argumenta que el sistema operativo Android viola patentes propiedad de ORACLE, muestra una debilidad de lo que usualmente muchos en la comunidad (incluyendome) consideramos software libre.

Desde que Sun Microsystems liberó la mayor parte del código de la plataforma Java, este asunto ha pasado por debajo de la mesa, pues las implementaciones que se utilizan son: la original, y alguna que otra licenciada directamente del propietario.

En un debate ocurrido hace un lustro, sobre El uso de Java en el Plan Nacional de Migración a Software Libre, Simon Phipps argumentaba que Sun Microsystems era una compañía amigable, que había prometido liberar el código y que estaba trabajando para ello.

En aquel momento mi argumento fue que las corporaciones no tienen alma, sentimientos o lealdad, que son básicamente actores de guerras que solo obedecen a motivos económicos y que verlas de cualquier otra manera era un riesgo que que el Estado no debería correr.

Después de un lustro y luego de la desaparición Sun, al ser adquirida por ORACLE, quedó demostrado que Simon Phipps probablemente tenía razón, Sun finalmente liberó lo que pudo de Java y nunca aplicó tarifas al licenciamiento de la plataforma, sin embargo yo también tenía razón: las corporaciones no tienen alma y ahora que Sun fue tragada por ORACLE se lanza al ataque en contra de quien pueda rendirle beneficios.

Este ataque es hoy posible gracias a un arma secreta que Sun mantenía en su arsenal: "Patentes de Software", para evitar suspicacias como las que siempre han rodeado a Mono, Sun emitió una liberación de uso de dichas patentes para cualquier implementación de  Java, siempre y cuando la implementación incluyera todas las características y servicios de la plataforma y no se incluyera ninguna característica o servicio adicional, es decir que para evitar una demanda de propiedad intelectual por patentes el distribuidor debía asegurarse de:

implementar toda la plataforma y solo la plataforma

Aquí es donde Google cayó en la trampa porque al parecer no incluyó AWT y Swing que son parte integral de la especificación.

Sin embargo lo peligroso de todo este asunto no es la demanda de ORACLE a Google, que puede presentar una buena pelea judicial al estilo SCO, Novel e IBM, sino que la trampa ahora es mucho más sutil (pero no menos potente), ya no basta que un código sea GPL versión 2 para que sea realmente libre.

En los términos establecidos por la liberación de derechos de uso de las patentes de Sun se coarta la libertad 3, que da el derecho a modificar el código y redistribuir el resultado de la modificación, porque Oracle va a demandar por violación de patente al quedar fuera de la protección de la liberación de derechos de uso de patentes, independientemente de lo que diga la GPLv2.

Así que en realidad aunque la mayoría del código de la plataforma Java sea libre por derecho, de hecho no es libre porque ORACLE puede utilizar otros instrumentos para ejercer coacción sobre cualquiera que intente modificar la plataforma, y por lo tanto no cumple con el espíritu del decreto 3390, por ello debe prohibirse nuevamente el uso de esta plataforma en el Estado hasta que se aclare esta situación o se libere Java bajo la licencia GPL versión 3 que incluye protección legal contra las patentes.

Finalmente en un tono más personal deberíamos hacer un esfuerzo coordinado por dejar de consumir productos ORACLE para que la corporación aprenda por la única vía posible: su cuenta bancaria, que jugar con la libertad puede resultar peligroso y dañino.

Dejar de consumir productos de esta infame comañía no es difícil, casi cualquier cosa que se esté haciendo con su manejador de base de datos, se puede hacer con PostgerSQL y todo el resto de sus productos son bastante malos, incluyendo el lenguaje de programación Java (no la plataforma) así que en general, dejar de usar productos ORACLE se puede considerar de entrada como una ventaja competitiva.

8 comentarios:

rolando dijo...

Saludos.

Creo importante acotar que el tema con Google es porque si ciertamente java es libre. No asi Java ME (mobile edition) razón en la que sustenta la demanda segun los expertos.

rolando dijo...

Saludos.

Creo importante acotar que el tema con Google es porque si ciertamente java es libre. No asi Java ME (mobile edition) razón en la que sustenta la demanda segun los expertos.

rolando dijo...

Saludos.

Creo importante acotar que el tema con Google es porque si ciertamente java es libre. No asi Java ME (mobile edition) razón en la que sustenta la demanda segun los expertos.

Exodus dijo...

Totalmente de acuerdo. Creo que es algo que deberíamos todos hacer. Hay mejores alternativas. Aunque, desde la compra de MySQL se ha puesto muy difícil siendo este un producto muy popular y altamente utilizado en amplios estratos de la sociedad *nix libre.

--.-.-.-.-.-.-RutaLibre-.-.-.-.-.-. dijo...

Estoy de acuerdo con lo escrito por José Luis. Además, viene al pelo la historia contenida en el link que inserta sobre una reunión celebrada hace 5 años en el MCT sobre el tema JAVA. A pesar de todo eso, el Pdte. de CNTI firmó un convenio cuyo articulo 9 es de publicarlo en el libro gordo de petete.!

Daniel Peraza dijo...

No me parece que "dejar de consumir productos de esta compania" sea tan facil. Quienes ya poseen una plataforma Oracle, dificilmente migren hacia Postgre por muy bueno que este sea.

Particularmente no me imagino organismos gubernamentales migrando las grandes bases de datos del pais hacia Postgre.

Y en mi opinion, si tuviesemos que elegir entre Java y C# (o Visual Basic, como he visto con frecuencia en el ambito empresarial) yo preferiria mil veces Java, porque me parece mas robusto y mejor disenado. Lamentablemente hay mucha ignorancia respecto al SL en ese sector.

phenobarbital dijo...

Al parecer y tomando el caso de las patentes, la gente no ha leído muy bien el brief de la demanda, en alguno puntos (como la patente 607), ni siquiera se habla de Java, Google se hizo una Maquina virtual propia para correr java y esto viola una patente que reza "Usar una máquina virtual controlada para correr código mixto compilado e interpretado"; es decir, de proceder, Oracle *podria* demandar a casi cualquier lenguaje que requiera una VM para funcionar (como por ejemplo .NET) ...
Oracle ha podido ejecutar estas patentes "genéricas" puesto que quedan fuera del ámbito de Java y son algo propósito general heradadas de Sun.
En fin, amanecerá y veremos ...

Jose Rey dijo...

Daniel, lo que se necesita es voluntad de hacerlo, donde trabajo, lo estamos haciendo, como lo dije en el artículo PostgreSQL hace casi todo lo que hace el otro, y los demás productos de esa compañía generalmente son superados por la competencia y no están en amplio uso.