¡La verdadera amenaza contra el software libre no es Oracle, son las patentes!

Recientemente, Oracle demandó a Google ante un tribunal estadounidense, alegando que la empresa del buscador estaría violando en su plataforma Android diversas patentes relacionadas con Java. La noticia hizo preguntarse a muchos comentaristas y a Google mismo si los argumentos planteados por Oracle no implican lisa y llanamente la muerte del software libre y abierto como tal. Para entender si es así o no, y por qué, es necesario distinguir correctamente el concepto legal de patente del de licencia.

Por si alguien aún no conoce la noticia, los términos de la demanda de Oracle hacia Googleimplican dos cosas: 1) Google habría infrigido el copyright de Oracle simplemente por utilizar Java en Android; 2) Google habría violado siete patentes de software que eran de Sun y hoy son de Oracle al construir la máquina virtual Dalvik en la que se basa Android.

Recordemos brevemente los antecedentes de la cuestión:

  • Java fue desarrollado por Sun Microsystems como software privativo
  • En 2006, Sun liberó Java como software libre con licencia GPLv2
  • El Android Software Development Kit, de Google, apareció en noviembre de 2007 y a mediados de agosto de 2008 apareció el Android 0.9 SDK beta. A fines de septiembre 2008 salió finalmente Android 1.0 SDK (Release 1).
  • Android es un sistema operativo móvil basado en un kernel de Linux y una máquina virtual de Java adaptada. Está licenciado con Apache, aunque hay algunas partes con GPL. Tiene una máquina virtual completamente reimplementada desde cero llamada Dalvik.
  • En abril de 2009 Sun fue adquirida por Oracle, una empresa no muy amiga del software libre

Ahora Oracle le reclama a Google y, si se falla a su favor, nadie sabe qué puede pasar. Por ejemplo, sería posible que los desarrolladores independientes ya no puedan hacer aplicaciones utilizando la plataforma de Android. Es más, podrían ni siquiera tener derecho a usar Java a menos que le paguen regalías a Oracle.

Pero, ¿cómo es eso posible, si se supone que Java es libre? Justamente, Google ha dicho en un comunicado que “Estamos decepcionados de que Oracle haya escogido atacar a Google y a la comunidad open-source de Java con esta demanda carente de base. La comunidad open-source de Java está por encima de cualquier compañía y trabaja cada día para hacer que Internet sea un lugar mejor. Defenderemos con todas nuestras armas los estándares open-source y seguiremos trabajando para desarrollar la plataforma Android”.

Evidentemente, puede sonar todo muy confuso pero, para destrabar un poco la cuestión, es necesario entender la diferencia entre licencias y patentes de software.

Una licencia es básicamente un contrato. Es típicamente en lo que uno hace click cuando instala algo y se le muestra un botón de “sí, acepto”. Dice lo que puedo y lo que no puedo hacer con el software en cuestión. Para que un software sea libre, debe distribuirse con una licencia que permita usarlo para cualquier fin, distribuirlo a voluntad, estudiarlo y modificarlo. En cambio, si el contrato prohíbe alguna de estas cosas, se trata de un software privativo o propietario. En ese sentido, Java es libre porque desde 2006 se licencia bajo GPLv2.

Pero, en algunos países, la jurisprudencia permite cerrar el software no sólo mediante estos contratos de uso, sino mediante patentes. Una patente es un derecho monopólico exclusivo y temporal que un gobierno otorga a una empresa, individuo u organización por una invención, definida como un producto o proceso que ofrece una nueva manera de hacer algo, o una nueva solución técnica a un problema. En el caso del software, cuando se permite su patentación no se está diciendo “usted tiene registrados los derechos de autor de tal código y como tal es el único que puede decidir cómo lo quiere licenciar”. Lo que se dice es “usted tiene el monopolio exclusivo de tal método o algoritmo de hacer tal cosa, y como tal es el único que puede permitir o no que otros lo usen o comercialicen”.

Para explicarlo con un ejemplo, digamos que alguien escribe un programa para calcular una trayectoria parabólica. Puede registrarlo como suyo bajo la figura del copyright, y entonces ese “texto” que constituye el código es suyo. Puede distribuirlo como quiera. Puede hacerlo junto con un contrato (licencia) que dice lo que se puede o no hacer con él. Si decide liberarlo, además pondrá a disposición del público el código fuente.

Pero supongamos que vive en un país donde se permiten las patentes de software. En ese caso, además de registrarlo con copyright, puede patentar lo que hizo como un “método para calcular trayectorias parabólicas”. Si esa patente le fuera otorgada, entonces no sólo nadie podría copiar su código debido al copyright. Lo que ocurriría es que nadie más podría calcular trayectorias parabólicas, porque la simple metodología de hacerlo sería exclusivamente suya.

Es lo que ocurre precisamente en Estados Unidos y otros países. Las patentes de software están permitidas desde que en 1981 la Corte Suprema de Justicia falló en el caso Diamond vs. Diehr. Hasta ese momento, la oficina de marcas y patentes consideraba a los programas de computadoras y las invenciones que contenían como operaciones matemáticas, abstracciones, no cosas concretas patentables. Y, como la tradición legal anglosajona se basa principalmente en la jurisprudencia, los antecedentes, desde entonces las patentes de software son otorgadas sin inconvenientes. Como la del doble click, que es de Microsoft, o el carrito de compras, que es de Amazon. Recientemente Amazon también pidió una patente sobre algo que son, esencialmente, las redes sociales online. Si se la otorgan, cualquiera que arme un sitio o aplicación de red social tendrá que contar con su permiso.

En el caso concreto de Java, entonces, sucede que el código es libre bajo los términos de la licencia de la GPL. Pero igual puede contener múltiples algoritmos patentados. No sólo por Oracle. No olvidemos que un algoritmo es sólo un método para hacer algo. Con lo cual, no sería imposible que cualquiera aparezca diciendo que es dueño de la patente de cualquier cosa chica, mediana o grande que Java haga. De hecho, esto puede sucederle a cualquiera que desarrolle cualquier programa en cualquier país donde se permitan las patentes de software. Sin importar si es libre o privativo.

Es importante entender lo que implica la patentación del software porque, cuando Oracle compró Sun, muchos se dijeron “no importa lo que haga con Java, OpenSolaris, MySQL, Open Office, Glassfish, Virtualbox o Netbeans. Total, no puede quitar retroactivamente la condición de libre de la última versión que así lo fue”. Lo cual es cierto en lo que respecta a la licencia. Pero no necesariamente en lo que respecta a las patentes, allí donde éstas sean válidas. La demanda entablada por Oracle contra Google es un mensaje a la comunidad FLOSS de que, si intentan actualizar y desarrollar los proyectos que decida abandonar, puede caerle encima igual con un juicio por patentes, no necesita hacerlo por violación de licencias. El problema de Google, por ejemplo, no es haber usado código de Sun para hacer Android. El asunto es si se ha aprovechado o no de un software considerado como invención patentable y patentada.

Por lo tanto, lo que puede exterminar al software libre y abierto no es Oracle. Ni siquiera es el software privativo. Lo realmente preocupante son las patentes de software. Es más, en este caso concreto, probablemente Google no termine perjudicándose ni aún perdiendo la demanda. Porque lo usual entre empresas con grandes espaldas financieras es resolverlo con un intercambio de propiedad intelectual: “yo supuestamente hago uso de algo patentado por ti, entonces te doy permiso de usar libremente estas cosas patentadas por mí y asunto arreglado”. Es una solución muy práctica, sobre todo si se tiene en cuenta que la cantidad de ideas que pueden estar involucradas en un programa hace prácticamente imposible analizar cuáles están patentadas, por quién y cuáles no.

Afortunadamente, aunque en ningún país latinoamericano existe una doctrina explícita al respecto, prevalece el criterio legal de otorgar patentes solamente a aquellos inventos que cumplan con los requisitos de innovación y aplicación industrial. Dado que esos requisitos se refieren a los sectores que producen bienes y no servicios, en general no se aceptan las patentes de software “como tal” o “puro”.

Esto es muy bueno porque la mayor parte de las empresas que desarrolla software de América Latina son pymes, y de ninguna manera podrían prosperar en un ambiente donde se permitieran las patentes de software. Para empezar, se requiere gran capacidad económica para estar en condiciones de patentar los numerosos algoritmos incluidos en un programa. En segundo lugar, los juicios por supuestas violaciones a lo patentado por otro son extremadamente costosos, y sólo las grandes corporaciones pueden enfrentarlos. En la práctica, casi nadie puede desarrollar software donde su patentación esté permitida, salvo arriesgándose a un juicio. Quien no esté en condiciones de asumir este riesgo, no puede dedicarse a desarrollar. Punto.

Además, el desarrollo de software es una de las actividades humanas más dependientes de la innovación acumulativa. Es decir que cada nuevo aporte depende profundamente de varias invenciones previas. Así, en lugar de estimular la innovación, en software es claro que los costos de obtener una patente para cada nuevo algoritmo, más la verificación experta de si no ha sido ya patentado, más tener un equipo legal especializado en atacar a quienes infrinjan las propias patentes o defenderse de eventuales acusaciones, sólo estimulan el desarrollo en empresas cuya espalda financiera sea enorme. Justamente, se sabe que la demanda ahora presentada por Oracle a Google ya la quería iniciar Sun, quien en su momento no se atrevió a incurrir en el gasto de emprenderla. Y la mayoría de las empresas latinoamericanas de software son mucho menores que lo que ha sido Sun, ni siquiera en sus peores momentos.

Por estas y otras razones, que se pueden ampliar en los links hacia lecturas recomendadas que pongo al final, es muy importante estar atentos a que el software como tal siga siendo no patentable en Latinoamérica. Porque esto podría cambiar en cualquier momento. De hecho, hay países como Brasil y Chile que ya emplean eufemismos legales para permitir algunas de estas patentes. Un “simple” acuerdo bilateral con Estados Unidos puede también incluirlas de facto. Porque entre varios incisos siempre se acostumbra sumar algunos orientados a “armonizar” las jurisprudencias locales con la imperante en ese país. Con lo cual, la nación que firme eso tendrá que reconocer como válidas las patentes de software otorgadas en Norteamérica, sean o no compatibles con su propia legislación y con los intereses de su industria local de software.

Para finalizar estas largas reflexiones, qué mejor que una frase de Bill Gates. Sí, de Bill Gates:

Si la gente hubiera comprendido, cuando la mayoría de las ideas de hoy fueron inventadas, la manera en la que se asignarían las patentes y hubieran tomado patentes sobre ellas, la industria estaría hoy en un completo estancamiento. [...] Cualquier nueva empresa sin patentes propias hubiera sido forzada a pagar cualquier precio que los gigantes quisieran imponer. Ese precio sería alto: A las compañías ya establecidas les interesa excluir a futuros competidores.” [William H. Gates – Memorándum interno de Microsoft (1991) en Fred Warshofsky, The Patent Wars (Las Guerras de Patentes), 1994]

Lecturas recomendadas

Patentamiento de Software ¿Por qué decir no?, por Beatriz Busaniche

La sociedad de la información en América Latina y el Caribe Desarrollo de las tecnologías y tecnologías para el desarrollo, Wilson Peres y Martin Hilbert. CEPAL. Cap. VII.

Patentes de software en América Latina – Brasil y Argentina caminan en la cornisa, por Beatriz Busaniche

Salvando a Europa de las patentes de software, por Richard M. Stallman

Comentarios

  1. hola soy riobot2020 quiero que me ayudes con todo lo que se refiere a programacion porque quiero perfeccionarme en eso solo me envias las imformaciones al correo
    Riobot2020@hotmail.com

    ResponderEliminar
  2. Hola Riobot2020, deberías ingresar en linux.org, ahi hay mucha información sobre la programacion del kernel de linux, muyyy documentado. Saludos.

    ResponderEliminar
  3. Muy buena reflexión, que tristeza me causa Oracle en los últimos años, pareciera ser el nuevo microsoft...

    ResponderEliminar
  4. ¿Me parece a mí o en la nota no aparece en ninguna parte la autora? (modestamente, yo). Me encanta que reproduzcan mi material, pero con atribución por favor! Gracias

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

WanaCryptor Fix and Recovery

¡Descarga los fondos de escritorio de Linux Elementary OS!

Red Hat e IBM logran importante certificación de seguridad para KVM