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
end
2 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 NeXT
4 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.