Previous Up Next
Capítulo 15 Copyleft: idealismo pragmático
1

Toda decisión que una persona toma entronca con sus valores y objetivos. La gente pude tener objetivos y valores muy distintos: la fama, el dinero, el amor, la supervivencia, la diversión y la libertad sólo son algunos de los objetivos que una buena persona puede tener. Cuando el objetivo también es ayudar a los otros y a uno mismo, lo llamamos idealismo.

Mi trabajo con el software libre está motivado por un objetivo idealista: difundir la libertad y la cooperación. Quiero promover la difusión del software libre, sustituyendo al software propietario que prohíbe la cooperación, para de este modo mejorar nuestra sociedad.

Esa es la razón principal de que la Licencia Pública General de GNU esté escrita tal y como lo está —como copyleft. Todo código añadido a programas protegidos por la GPL debe ser software libre, incluso si se coloca en un archivo separado. Hago que mi código esté disponible como software libre y no como software propietario, para animar a otra gente que escribe software a que también lo haga. Supongo que como los desarrolladores de software propietario utilizan el copyright para que no podamos compartir, los que cooperamos podemos usar el copyright para dar a otros que cooperan una ventaja propia: la de usar nuestro código.

No todos los que usan GNU GPL tienen este objetivo. Hace muchos años, a un amigo mío le pidieron que redistribuyera un programa copyleft en condiciones que no eran copyleft, y respondió más o menos así: «A veces trabajo con software libre y otras con software propietario pero cuando trabajo con software propietario, espero que me paguen».

Quería compartir su trabajo con una comunidad que compartiese software, pero no veía ninguna razón para hacer una donación a un negocio que fabrica productos fuera del alcance de nuestra comunidad. Su objetivo era diferente del mío, pero decidió que GNU GPL también era útil para su objetivo.

Si quieres lograr algo en este mundo, el idealismo no es suficiente —necesitas escoger un método que funcione para conseguir tu objetivo—. En otras palabras, necesitas ser «pragmático». ¿Es pragmática la GPL? Echemos un vistazo a sus resultados.

Consideremos GNU C++. ¿Por qué tenemos un compilador libre C++? Sólo porque la GNU GPL dicta que tiene que ser libre. GNU C++ fue desarrollado por un consorcio industrial, MCC, a partir del compilador GNU C. Normalmente la MCC hace su trabajo todo lo propietario que puede. Pero hicieron el front end2 C++ con software libre porque la GNU GPL dictaba que era el único modo en que podían publicarlo. El fron end C++ incluía muchos archivos nuevos, pero dado que supuestamente tenían que estar relacionados con GCC,3 la GPL encajaba en ellos. El beneficio para nuestra comunidad fue evidente.

Consideremos GNU Objective C. Inicialmente NeXT4 quiso hacer propietario este front end; propusieron que se lanzara como un archivo «.o», y dejar que los usuarios lo enlazaran con el resto de GCC, pensando que esta sería una aproximación a las exigencias de la GPL, pero nuestro abogado dijo que esto no salvaba los requerimientos legales, que no estaba permitido. Por eso hicieron libre el front end Objective C.

Estos casos tuvieron lugar hace años, pero la GNU GPL sigue proporcionándonos más software libre.

Muchas bibliotecas de GNU están protegidas por la licencia pública general para bibliotecas, pero no todas. Una biblioteca de GNU protegida por la licencia GPL normal es Readline, que implementa la edición de líneas de comandos. Una vez encontré un programa no 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 en realidad fue redistribuirlo bajo GPL. Ahora es software libre.

Los programadores que escriben mejoras para GCC —o Emacs, o Bash, o Linux, o cualquier programa protegido por la GPL— frecuentemente son empleados de empresas o universidades. Cuando el programador quiere devolver sus mejoras a la comunidad y muestra su código en la siguiente publicación, el jefe le dirá:


Espera un momento. ¡Tu código nos pertenece! No queremos compartirlo; hemos decidido convertir tu versión mejorada en un producto de software propietario.
Aquí la GNU GPL viene a nuestro rescate. El programador enseña al jefe que este producto de software propietario infringiría el copyright y el jefe se da cuenta de que sólo 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 irá incluido en el siguiente lanzamiento.

La GNU GPL no es una hermanita de la caridad. Impide algunas cosas que la gente a veces quiere hacer. Hay usuarios que dicen que esto es un mal asunto —que la GPL «excluye» a algunos creadores de software propietario que «es necesario introducir en la comunidad del software libre».

Pero nosotros no los excluimos de nuestra comunidad; ellos eligen no entrar. Su decisión de hacer software propietario es una decisión de mantenerse fuera de nuestra comunidad. Estar en nuestra comunidad significa unirse a nosotros por medio de la cooperación; no podemos «introducirlos en nuestra comunidad» si ellos no quieren unirse.

Lo que podemos hacer es ofrecerles un aliciente para unirse. La GNU GPL está diseñada para hacer de nuestro software disponible un aliciente: «si haces libre tu software, puedes usar este código». Por supuesto, no te ganas a todos, pero a veces te ganas a algunos.

El desarrollo del software propietario no ayuda a nuestra comunidad, pero a menudo sus creadores quieren donaciones de nuestra parte. Los usuarios de software libre pueden proporcionar autoestima —reconocimiento y gratitud— a los creadores de software libre, pero también puede ser muy tentador cuando una empresa te dice: «¡Tú deja simplemente que metamos tu paquete en nuestro programa propietario y tu programa lo usarán muchos miles de personas!» La tentación pude ser poderosa, pero a largo plazo todos estaremos en mejor situación 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 una política de provisión de software propietario. El X Consortium —y su sucesor, el Open Group— ofrece un ejemplo: financiados por compañías que producían software propietario, se han afanado, durante una década, en persuadir a los programadores de que no usen copyleft. Ahora que el Open Group ha hecho de X11R6.4 software no libre, los que resistimos esa presión estamos encantados de haber aguantado.5

En términos prácticos, pensar en objetivos a largo plazo reforzará tu voluntad de resistir a esta presión. Si piensas en la libertad y en la comunidad que puedes construir permaneciendo firme, encontrarás la fuerza para hacerlo. «Resiste por algo o caerás por nada».

Y si los cínicos ridiculizan la libertad, si ridiculizan a la comunidad... si los «implacables realistas» dicen que las ganancias son el único ideal... simplemente ignóralos y sigue usando el copyleft.


1
Este artículo fue escrito originalmente en 1998.
2
El front end es la parte del compilador que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar. EL término se emplea normalmente en inglés, aunque alguna vez se traduce por «frontal», se trata de un falso amigo, sería más preciso algo como «antecesor», «precursor» o incluso «pre-procesador». [N. del E.]
3
El compilador GNU del lenguaje C. [N. del E.]
4
Un sistema operativo creado por Steve Jobs, finalmente comprado por Apple.
5
En septiembre de 1998, varios meses después de que X11R6.4 fuera publicado en condiciones de distribución no libre, el Open Group trastocó su decisión y lo relanzó bajo la misma licencia de software libre no copyleft que se usó para X11R6.3. Gracias, Open Group, pero este trastocamiento posterior no invalida las conclusiones que establecimos a partir del hecho de que fuera posible añadir restricciones.

Previous Up Next