Copyleft: Idealismo pragmático
por Richard StallmanToda decisión que toma una persona emana de sus valores y sus metas. Las personas pueden tener muchas metas y valores: fama, dinero, amor, supervivencia, diversión y libertad son solo algunas de las metas que una buena persona puede tener. Cuando la meta es una cuestión de principios, lo llamamos idealismo.
Mi trabajo en el software libre está motivado por una meta idealista: difundir la libertad y la cooperación. Quiero alentar la difusión del software libre, reemplazando el software privativo, que prohíbe la cooperación, y así mejorar nuestra sociedad.
Esa es la razón básica por la cual la Licencia Pública General de GNU está escrita tal y como está, como copyleft. Todo el código añadido a un programa cubierto por la GPL debe ser software libre, incluso si se encuentra en un archivo separado. Yo pongo mi código a disposición para su uso en software libre, y no para uso en software privativo, con el fin de alentar a otra gente que escribe software para que lo hagan también libre. Pienso que como los desarrolladores de software privativo utilizan el copyright para evitar que compartamos, nosotros los cooperadores podemos utilizar el copyright para darles a otros cooperadores una ventaja propia: ellos pueden utilizar nuestro código.
No todos los que usan la GPL de GNU tienen este objetivo. Hace muchos años, le pidieron a un amigo mío que redistribuyera un programa cubierto por copyleft bajo términos que no eran copyleft, y respondió más o menos así:
«Unas veces trabajo con software libre y otras con software privativo, pero cuando trabajo con software privativo, espero que me paguen.»
Quería compartir su trabajo con una comunidad que compartiera software, pero no veía ninguna razón para hacer una donación a un negocio que hace productos que quedan fuera del alcance de nuestra comunidad. Su objetivo era diferente del mío, pero decidió que la GPL de GNU también era útil para su objetivo.
Si se quiere lograr algo en el mundo, el idealismo no es suficiente. Se tiene que escoger un método que funcione para conseguir el objetivo. En otras palabras, hay que ser «pragmático». ¿Es pragmática la GPL? Echemos un vistazo a sus resultados.
Consideremos el caso de C++ de GNU. ¿Por qué tenemos un compilador libre de C++? Solo porque la GPL de GNU estipula que tiene que ser libre. C++ de GNU fue desarrollado por un consorcio industrial, MCC, a partir del compilador C de GNU. Normalmente, la MCC hace su trabajo lo más privativo posible. Pero hicieron la interfaz C++ software libre porque la GPL de GNU dictaba que era el único modo en que podían publicarla. La interfaz C++ incluía muchos archivos nuevos, pero dado que estaban pensados para estar relacionados con GCC, la GPL se aplicaba a ellos. El beneficio para nuestra comunidad es evidente.
Pensemos también en el caso de Objective C de GNU. Inicialmente NeXT quiso hacer privativa esta interfaz; propusieron que se publicara como archivos .o, y dejar que los usuarios los enlazaran con el resto de GCC, pensando que esta sería una forma de eludir los requisitos de la GPL. Pero nuestro abogado dijo que esto no eludía los requerimientos legales, que no estaba permitido. Por eso hicieron software libre la interfaz Objective C.
Aunque estos casos ocurrieron hace años, la GPL de GNU sigue proporcionándonos más software libre.
Muchas bibliotecas de GNU están cubiertas por la Licencia General Pública Reducida (LGPL) de GNU, pero no todas. Una biblioteca de GNU cubierta por la GPL ordinaria es Readline, que sirve para la edición de línea de comandos. Una vez me enteré de un programa que no era libre que estaba diseñado para usar Readline, y le dije al desarrollador que esto no estaba permitido. Podría haber eliminado del programa la edición de líneas de comandos, pero lo que hizo de hecho fue publicarlo bajo la GPL. Ahora es software libre.
Los programadores que escriben mejoras para GCC (o Emacs, BASH, Linux o cualquier programa cubierto por la GPL) frecuentemente son contratados por empresas o universidades. Cuando el programador quiere devolver sus mejoras a la comunidad, y ver su código en la siguiente versión, el jefe le puede decir: «Espera un momento, ¡tu código nos pertenece! No queremos compartirlo, hemos decidido convertir tu versión mejorada en un producto de software privativo».
Aquí es donde la GPL de GNU acude al rescate. El programador enseña al jefe que este producto de software privativo infringiría el copyright, y el jefe se da cuenta de que solo tiene dos opciones: publicar el nuevo código como software libre o no publicarlo en absoluto. Casi siempre permite que el programador haga lo que pretendía desde el principio y el código se incluye en la siguiente versión.
La GPL de GNU no es necesariamente complaciente. Dice no a algunas cosas que la gente a veces quiere hacer. Hay usuarios que dicen que esto es malo, que la GPL «excluye» a algunos programadores de software privativo que «hay que incorporar en la comunidad de software libre».
Pero no los estamos excluyendo de nuestra comunidad, ellos elijen no entrar. Su decisión de hacer software privativo es lo que les mantiene fuera. Pertenecer a nuestra comunidad significa unirse para cooperar con nosotros. No podemos «incorporarlos a nuestra comunidad» si ellos no quieren unirse.
Lo que sí podemos hacer es ofrecerles un aliciente para que se unan. La GPL de GNU está diseñada para hacer que nuestro software sea un aliciente: «si hace que su software sea libre, puede usar este código». Por supuesto, no te ganas a todos los programadores, pero convence a alguno de vez en cuando.
El desarrollo de software privativo no contribuye a nuestra comunidad, pero a menudo sus desarrolladores quieren donaciones de nuestra parte. A quienes desarrollan software libre, el reconocimiento y la gratitud de los usuarios de su software les proporcionará satisfacción, pero puede ser muy tentador que una empresa te diga: «¡Tú solo deja que metamos tu paquete en nuestro programa privativo y tu programa será usado por muchos miles de personas!» La tentación puede ser grande, pero a la larga será mucho mejor para todos nosotros si nos resistimos a ella.
La tentación y la presión resultan difíciles de reconocer si llegan de forma indirecta, a través de organizaciones de software libre que han adoptado la política de ofrecer software privativo. El Consorcio de X (y su sucesor, el Open Group) es un ejemplo: financiados por compañías que producían software privativo, durante una década se esforzaron tratando de persuadir a los programadores para que no usaran el copyleft. Cuando el Open Group trató de hacer que X11R6.4 no fuese software libre, los que no cedimos a esas presiones nos alegramos de haber actuado así.
En septiembre de 1998, varios meses después de que X11R6.4 se publicara en condiciones de distribución que no eran libres, el Open Group dio marcha atrás y volvió a publicarlo bajo la misma licencia de software libre sin copyleft que se usó para X11R6.3. Gracias, Open Group, pero esta rectificación posterior no invalida las conclusiones que extrajimos del hecho de que fuera posible añadir las restricciones.
Desde un punto de vista pragmático, pensar en objetivos más importantes a largo plazo reforzará su voluntad de resistir esta presión. Si centra su mente en la libertad y en la comunidad que puede construir permaneciendo firme, encontrará la fuerza para hacerlo. «Resiste por algo o caerás por nada».
Y si los cínicos se ríen de la libertad, si se ríen de la comunidad..., si los «realistas a ultranza» dicen que no hay más ideal que la rentabilidad..., simplemente no les haga caso y siga usando el copyleft.
Este ensayo está publicado en el libro Software libre para una sociedad libre: Selección de ensayos de Richard M. Stallman.