Free Software, Free Society: ensayos selectos de Richard M. Stallman

* Esto lo escribí para la revista Tiempo Compartido, volumen 7, número 4, de noviembre del 2007.

En 1971, Richard Stallman era un hacker[1] que trabajaba en el laboratorio de inteligencia artificial del MIT. Pertenecía a una comunidad en la que compartían el software. Si alguien de otra universidad o de alguna compañía solicitaba el código fuente que creaban, ya sea para adaptarlo a sus necesidades o portarlo a otra plataforma, ellos se lo daban.

Pero luego, empezaron a surgir computadoras (como VAX y 68020) que incluían sus propios sistemas operativos. Hasta para obtener una copia ejecutable de estos se debía firmar un acuerdo de no divulgación (non­disclosure agreement). Era software privativo, no podía ser modificado ni redistribuido. Como menciona Stallman, «eso significa que el primer paso para usar la computadora era prometer negarle la ayuda a su vecino. Cooperar con la comunidad quedaba prohibido. La regla impuesta por los dueños del software propietario era: "si usted comparte con su vecino, usted es un pirata; si quiere cambios, ruéguenos a nosotros que los hagamos."»

Richard Stallman piensa que los usuarios de computadoras deberían ser libres de modificar los programas para que se adapten a sus necesidades. Además dice que deberíamos ser libres de compartir el software, porque ayudar a otras personas es la base de la sociedad.

"Free Software, Free Society" ("Software libre para una sociedad libre") [1] es un compendio de ensayos y charlas que nos presentan esta filosofía, así como el trabajo práctico realizado por Stallman con el apoyo de una comunidad de millones de personas que piensan como él.

GNU y la Fundación para el Software Libre
«Yo experimenté lo que es recibir un acuerdo de no divulgación cuando alguien se negó a darme, a mí y al Laboratorio, el código fuente del programa controlador de nuestra impresora (ciertas características que le hacían falta a este programa hicieron el uso de esta impresora extremadamente frustrante).» A partir de esto, Stallman llegó a la conclusión de que, para volver a formar la comunidad de hackers, lo primero que se necesitaba era un sistema operativo libre. Cualquiera sería capaz de unirse a la comunidad y usar las computadoras sin tener que ir en contra de sus amigos.

Al hacerlo compatible con Unix se aseguraba que fuera portable, y decidió llamarlo GNU[2].
En 1984 renunció al MIT para iniciar el proyecto. Primero escribió un front­end de C, para un compilador de Pascal (que después de algunos años sería utilizado al crear GCC). El primer programa que distribuyó fue GNU Emacs, un editor de texto que vendía a cambio de $150 iniciando el negocio de distribución de software libre.

En 1985, al ver que más gente se interesaba en el proyecto, crearon la Free Software Foundation para obtener financiamiento y desarrollar el sistema operativo libre. Entre los programas escritos y mantenidos por ellos se encuentra la biblioteca de C (glibc, utilizada por los programas para comunicarse con el kernel en los sistemas GNU/Linux) y BASH (shell utilizado en la mayoría de sistemas GNU/Linux).

En 1990 lo único que faltaba para concluir el sistema operativo era el kernel (hasta el momento los programas GNU se ejecutaban en Unix). Decidieron implementarlo como una colección de procesos servidores que corrieran sobre Mach. Para 1991 aún no estaba listo, pero en ese momento apareció Linus Torvalds con su kernel, y empezaron a combinarlos obteniendo como resultado GNU/Linux, el sistema
operativo libre usado en las distintas distribuciones actuales.

Un estudio realizado sobre Red Hat 7.1 en 2001, indica que el sistema para ese tiempo contenía 30 millones de líneas de código fuente, y que su desarrollo hubiera costado $1000 millones y 8000 años­ persona, siguiendo las etapas del desarrollo del software propietario. [3]

Copyright o Copyleft

La mayoría de personas asumen que los derechos de autor (copyright en inglés) son un derecho natural, y los editores de software tratan de convencernos de esto (porque en la práctica los autores ceden sus derechos a las empresas). Sin embargo, Stallman nos hace ver que la Constitución de los Estados Unidos y la tradición legal rechazan este punto de vista. Son un monopolio artificial impuesto por el gobierno que
limita un derecho natural de los usuarios: copiar. Su fin principal es promover el progreso científico y de esta forma beneficiar a la sociedad.

Las leyes actuales de derechos de autor fueron creadas en la era de la imprenta. Obligan a los editores a obtener permisos antes de publicar un artículo para que estos se encarguen de difundir el conocimiento, sin interferir en el trabajo de científicos y estudiantes [1]. Hoy en día, la mejor forma de diseminar el conocimiento es la Web, hoy en día esas leyes dejaron de cumplir su objetivo y se convirtieron más bien en un obstáculo para el progreso.

Usando estas mismas leyes que limitan la libertad de los usuarios, Stallman ideó una forma de asegurar que el software libre permaneciera libre por siempre. Creó la GNU General Public License (GPL) [4], una licencia de protección a los derechos de autor que acompaña los ejecutables y el código fuente del software libre.

Se le considera copyleft porque sus clausulas permiten la libre ejecución, modificación y distribución del programa, pero lo más importante, obligan a que cualquier trabajo derivado deba ser publicado con la misma licencia, asegurando a los programadores que su colaboración seguirá beneficiando a la comunidad aún después de modificaciones y agregados. Esto se vuelve necesario ya que las mismas empresas que limitan la libertad podrían tomar el trabajo de la comunidad y convertirlo en software propietario, como ha sucedido con muchos proyectos liberados al dominio público, o distribuidos con licencias que lo permiten. Según Stallman, estos proyectos persiguen la popularidad, no la libertad.

De esta forma se define el software libre como un asunto de libertad, no de precio. Se refiere a cuatro tipos de libertad para los usuarios del software [5]:

  • Libertad de ejecutar el programa, para cualquier propósito. (libertad 0)
  • Libertad de modificar el programa para que se adapte a sus necesidades (libertad 1)
  • Libertad de redistribuir copias, ya sean gratis o no. (libertad 2)
  • Libertad de distribuir versiones modificadas del programa, de forma que la comunidad pueda beneficiarse de sus mejorías. (libertad 3)

Además, esta definición indica que el acceso al código fuente es una precondición para las libertades 1 y 3.

Toda una filosofía

La filosofía que impulsa este movimiento nos dice que la sociedad necesita libertad e información que siempre sea accesible, libertad de conocimiento. Pero sobre todo la sociedad necesita que se impulse la cooperación antes que la competencia. Nos dice el autor que cuando los dueños de las grandes compañías de software le llaman pirata a alguien que trata de ayudar a su vecino, están contaminando el espíritu
cívico.

Claro que la competencia no es mala por si sola, el problema es cuando un competidor bloquea y ataca al otro. Esto es a lo que hemos llegado en el campo del software, una pelea en la que la calidad queda de lado; y otros aspectos como la influencia política, el tamaño o el dinero son los que deciden cual es el ganador.

Por esta ideología que pone al usuario y a la sociedad por encima de la ganancia económica, Stallman ha sido calificado como profeta por unos, y como extremista por otros. La principal crítica que le hacen es que la licencia GPL excluye a algunos desarrolladores de software privativo, que no están de acuerdo en liberar su trabajo y llegan a comparar esta licencia con un virus. Sin embargo él se defiende diciendo que no están siendo excluidos de la comunidad, ellos deciden no entrar, porque «ser parte de la comunidad significa unirse y cooperar con nosotros».

Al fin y al cabo, el objetivo es que la mayor cantidad de usuarios y desarrolladores se «contagien» de libertad. Entre más información y conocimiento tenga una persona, más libre es, por eso la información y el conocimiento deben ser libres.

Esta discusión también causó la creación del movimiento de código abierto, cuando un grupo importante de la comunidad empezó a diferir sobre estás opiniones. Decidieron formar un grupo aparte, en el que se mantienen todos los beneficios prácticos, pero que deja de lado todos los asuntos ideológicos. El software libre promueve todas estas cosas que más bien entran en el campo de la ética, y como
resultado de este «Idealismo Pragmático» hemos obtenido programas que además de ejecutar, siempre podremos estudiar, arreglar, adaptar y mejorar.

Las patentes

En el libro aparecen una y otra vez los efectos negativos de asignarle al software un dueño, como por ejemplo en el caso de las patentes. Esta forma de protección da al titular de la patente el derecho exclusivo sobre la explotación de una invención por 20 años a partir de la presentación de la solicitud [6], a cambio de que los detalles de su invención sean publicados.

No importa si alguien más llega a la misma invención por métodos totalmente distintos. esa idea solo podrá ser utilizada pagando al titular de la patente, o cuando expire la protección. En 1987 se usaban procesadores de 50 MHz, en el campo de la computación 20 años es muchísimo tiempo, por lo que esperar a que expire la patente no es viable.

Entonces el Stallman nos presenta las 3 opciones: evitar la patente, licenciar la patente o revocar la patente en un juicio. La primera muchas veces no es posible, como ejemplo vemos el caso del formato de imágenes GIF que utiliza un algoritmo patentado para la compresión. Para cuando Unisys (titular de la patente) se dio cuenta de esto y empezó a cobrar, ya el uso de GIF era muy común en páginas de Internet.
A pesar de que surgió un formato alterno sin patentes y con algunas otras ventajas, los desarrolladores debieron decidir entre pagar la licencia o perder a los usuarios acostumbrados al formato.

La segunda tampoco es del todo viable. Asumiendo que el titular ofrezca la venta de licencias (ya que no está obligado a hacerlo), el monopolio que ostenta le permite cobrar precios más allá de lo razonable. Stallman nos dice que la única forma de beneficiarse del sistema de patentes es ser una mega­corporación multinacional (como IBM con sus más de 9000 patentes); pero para una empresa normal, pagar 20
patentes para sacar al mercado su producto puede significar la quiebra, sin importar que el proyecto hasta incluya una que otra idea patentable.

Y la tercera opción es tal vez la menos viable de todas. Las invenciones para ser patentables deben tener un uso práctico, poseer un elemento de novedad y no ser obvias [6]. Pero muchas veces las oficinas de patentes aceptan invenciones que no cumplen con estos requisitos, incluso en el libro se mencionan dos elementos utilizados por Stallman en sus programas que después aparecieron patentados. En estos casos sería posible realizar un juicio para revocar la patente, si el afectado tuviera los millones necesarios para costearlo.

Por una sociedad libre, al menos en lo tecnológico

En los últimos años se ha hecho más evidente la inutilidad e inoperancia de las leyes de protección autoral aplicada al software, ya que cada vez se alejan más de los objetivos para los que fueron creadas. No han contribuido a aumentar la cantidad de conocimiento porque obligan a iniciar los programas desde cero, cuando es más provechoso adaptar un programa ya existente. Esto obstruye la creación de nuevos
trabajos útiles para la sociedad, por la duplicación de esfuerzos que deberían ser aprovechados para mejorar el estado del arte.

Además los usuarios siempre encuentran la manera de compartir las cosas que les son útiles (de aquí el éxito que han tenido las redes P2P). Pero en lugar de comprender que el sistema de protección ha dado un giro equivocado, la tendencia actual es restringir cada vez más a los usuarios del software. Stallman ataca de forma muy fuerte la gestión de derechos digitales (más conocido como DRM por sus siglas en inglés). Por estas restricciones ahora nos encontramos DVDs que sólo pueden ser ejecutados en ciertos equipos, e­books que sólo una persona puede leer y CDs que no podemos respaldar, sin importar que esto vaya en contra del «uso legitimo» de las cosas por las que pagamos. Pero el problema no queda ahí, también pretenden prohibir la producción de dispositivos de grabación y criminalizar la investigaciones en áreas como decodificación e ingeniería inversa. Este conjunto de ideas son incluidas dentro de lo que llaman
«Computación Confiable», pero que según el autor es todo menos eso, ya que permiten a los proveedores conocer quién, cuándo y como accede una obra, autorizar o negar este acceso, y poner restricciones de forma unilateral (e incluso variable) sin importar los derechos que las leyes otorgan a los usuarios. Son computadoras que obedecen a los proveedores, no a los dueños.

«Los autores, como yo, no merecen un poder especial sobre ustedes, si quieren recompensarme por el software y los libros que he escrito, yo agradecido aceptaría un cheque. Pero por favor, no entreguen su libertad en mi nombre." [1].

Licencias
Los derechos de autor aplican a partir de la creación de la obra, no requieren de ninguna formalidad y su registro es opcional (únicamente para darle certeza jurídica) [6]. El copyleft es un tipo de copyright en el que el autor cede los derechos patrimoniales de su obra. Entonces, aplicarle el copyleft a un programa es muy sencillo: primero se debe aclarar que está protegido por los derechos de autor, y luego basta con incluir los términos que permiten a las personas usarlo, modificarlo y redistribuirlo. Por esto Stallman
presenta al final de su libro las licencias creadas por GNU, solo hay que incluirlas al distribuir el programa.

Aparece el texto completo de las licencias General Public License, Lesser GPL (para librerías que por alguna razón deben ser enlazadas en programas no libres) y Free Documentation License (para la documentación, los manuales y cualquier texto relacionado con los programas libres).
--
[1] Alguien a quién le gusta lo que hace y disfruta siendo muy bueno en eso. Aplica a actividades muy distintas, que tienen en común habilidad, inteligencia y juego al explorar los límites de lo posible. Por otro lado "Cracker" es el que rompe las medidas de seguridad de los sistemas, a veces también son hackers, pero la mayoría de veces no. [2]
[2]Acrónimo recursivo para GNU’s Not Unix.