Esta es una traducción de la página original en inglés.

Por qué el «código abierto» pierde de vista lo esencial del software libre

Las expresiones «software libre» y «código abierto» («open source») se refieren aproximadamente al mismo conjunto de programas. No obstante, al basarse en valores diferentes, lo que dicen acerca de esos programas es muy distinto. El movimiento del software libre defiende la libertad de los usuarios de ordenadores, es un movimiento en pro de la libertad y la justicia. La idea del código abierto, por el contrario, valora principalmente las ventajas prácticas y no defiende principios. Esta es la razón por la que estamos en desacuerdo con la campaña del código abierto y no empleamos esa expresión.

Cuando decimos que el software es «libre», nos referimos a que respeta las libertades esenciales del usuario: la libertad de ejecutarlo, estudiarlo y modificarlo, y de distribuir copias con o sin modificaciones. Es una cuestión de libertad y no de precio, por lo tanto pensemos en «libertad de expresión», no en «barra libre». [1]

Estas libertades son de vital importancia. Son esenciales no solo para el usuario individual sino para la sociedad entera, ya que promueven la solidaridad social: compartir y cooperar. La importancia de estas libertades se incrementa a medida que nuestra cultura y nuestras actividades cotidianas se ven cada más más ligadas al mundo digital. En un mundo de sonidos, imágenes y palabras digitales, el software libre se vuelve cada vez más esencial para la libertad en general.

En la actualidad, decenas de millones de personas alrededor del mundo utilizan software libre. Escuelas públicas de algunas regiones de India y España enseñan a todo el alumnado a utilizar el sistema operativo libre GNU/Linux. Sin embargo, la mayoría de estos usuarios nunca han oído hablar de las razones éticas por las cuales desarrollamos este sistema y construimos la comunidad del software libre, ya que hoy en día suele referirse a este sistema y a esta comunidad como de «código abierto», atribuyéndoseles una filosofía diferente que rara vez menciona esas libertades.

El movimiento del software libre trabaja por la libertad de los usuarios de ordenadores desde 1983. En 1984 iniciamos el desarrollo del sistema operativo libre GNU para poder evitar los sistemas operativos que no son libres y niegan la libertad a los usuarios. Durante los años ochenta desarrollamos la mayor parte de los componentes esenciales del sistema GNU y concebimos la Licencia Pública General de GNU (GNU GPL) para publicarlos bajo la misma, pues está diseñada específicamente para proteger la libertad de todos los usuarios de un programa.

Sin embargo, no todos los usuarios y programadores de software libre estaban de acuerdo con los objetivos del movimiento del software libre. En 1998, una parte de la comunidad del software libre se escindió y empezó a abogar por el «open source» (código abierto). La expresión se propuso originalmente para evitar una posible malinterpretación del término «free software» [2] (software libre), pero pronto quedó asociada a posiciones filosóficas bien diferentes de las del movimiento del software libre.

Algunos de los defensores del «código abierto» consideraban este término como una «campaña publicitaria en pro del software libre» orientada a atraer a los ejecutivos de las empresas enfatizando los beneficios prácticos, sin mencionar conceptos de lo que es correcto o incorrecto, que quizá los empresarios no desearan oír. Otros rechazaban rotundamente los valores éticos y sociales del software libre. Fueran cuales fueran sus puntos de vista, cuando hacían campaña por el «código abierto» no mencionaban ni abogaban por esos valores. La expresión «código abierto» se vio rápidamente asociada con ideas y argumentaciones basadas únicamente en valores de orden práctico, tales como desarrollar y disponer de un software potente y fiable. La mayoría de los partidarios del «código abierto» se sumaron a esa campaña después de entonces y hacen la misma asociación de conceptos. La mayoría de los debates del «código abierto» no prestan atención a lo que es correcto o incorrecto, sino solo a la popularidad y al éxito. Este es un ejemplo típico. Existe una minoría de partidarios del código abierto que hoy en día sí mencionan que la libertad forma parte del asunto, pero no son muy visibles entre los muchos que no lo hacen.

Ambos describen casi la misma categoría de software, pero representan puntos de vista basados en valores fundamentalmente diferentes. Para el movimiento del software libre, el software libre es un imperativo ético: el respeto fundamental de la libertad de los usuarios. La filosofía del código abierto, en cambio, plantea las cuestiones en términos de cómo «mejorar» el software, en un sentido meramente práctico. Sostiene que el software privativo es una solución deficiente para los problemas prácticos que hay que resolver.

Para el movimiento del software libre, sin embargo, el software que no es libre es un problema social y la solución consiste en dejar de usarlo, migrar al software libre.

«Software libre», «código abierto»... Si es el mismo software (o casi), ¿acaso importa el nombre? Sí, porque palabras diferentes expresan ideas diferentes. Aunque un programa libre dará hoy la misma libertad se llame como se llame, instaurar la libertad de manera perdurable depende sobre todo de enseñar a las personas a valorarla. Si queremos contribuir a ello, es esencial que utilicemos la expresión «software libre».

Nosotros, en el movimiento del software libre, no vemos a los partidarios del código abierto como enemigos; el enemigo es el software privativo, el que no es libre. Pero queremos que la gente sepa que defendemos la libertad, así que no aceptamos que se nos catalogue como defensores del código abierto. Lo que nosotros defendemos no es el «código abierto», y lo que rechazamos no es el «código cerrado». Para dejar esto claro evitamos utilizar estos términos.

Diferencias prácticas entre software libre y código abierto

En la práctica, el código abierto tiene criterios menos estrictos que los del software libre. Que sepamos, todo el código fuente existente del software libre publicado se podría considerar de código abierto. Y casi todo el software de código abierto es software libre, pero hay algunas excepciones. En primer lugar, algunas licencias de código abierto son demasiado restrictivas, por lo que no se las puede considerar licencias libres. Por ejemplo, «Open Watcom» no es libre porque su licencia no permite hacer versiones modificadas y utilizarlas de forma privada. Afortunadamente, son muy pocos los programas que llevan tales licencias.

En segundo lugar, cuando el código fuente de un programa tiene una licencia débil, una licencia sin copyleft, sus ejecutables pueden tener condiciones adicionales que no son libres. Microsoft hace esto con Visual Studio Code, por ejemplo.

Si estos ejecutables se corresponden totalmente con los archivos fuente publicados, serán de código abierto, pero no software libre. No obstante, en ese caso los usuarios pueden compilar el código fuente para crear y distribuir ejecutables libres.

Por último, y lo que es más importante en la práctica, muchos productos que contienen ordenadores verifican las firmas de sus programas ejecutables para impedir que los usuarios instalen ejecutables diferentes; solo una compañía tiene el privilegio de elaborar ejecutables que funcionen en el dispositivo y de acceder a todas las prestaciones del mismo. A estos dispositivos los llamamos «tiranos» y la práctica se denomina «tivoización», por referencia al producto (Tivo) en el que se utilizó por primera vez. Aun cuando el ejecutable esté hecho a partir de código fuente libre, y nominalmente tenga una licencia libre, los usuarios no pueden ejecutar versiones modificadas, de modo que el ejecutable no es de hecho libre.

Muchos productos de Android contienen ejecutables de Linux tivoizados que no son libres, aun cuando su código fuente está bajo la GPL de GNU, versión 2. Concebimos la versión 3 de la GPL de GNU para prohibir esta práctica.

Los criterios del código abierto solo atienden a la licencia del código fuente. De modo que esos ejecutables privativos, cuando están hechos a partir de un código fuente como Linux, que es de código abierto y libre, son de código abierto pero no son libres.

Errores frecuentes sobre el significado de «software libre» y «código abierto»

La expresión «free software» es fácilmente malinterpretable. El significado no intencionado de «software que se puede obtener sin costo alguno» se ajusta a ella tanto como el significado con el que la empleamos: «software que otorga al usuario ciertas libertades». Abordamos este problema publicando la definición de software libre, y diciendo: «Piense en libertad de expresión, no en barra libre». Pero no es una solución perfecta, no elimina completamente el problema. Un término correcto e inequívoco sería mejor, si no presentase otros problemas.

Lamentablemente, todas las alternativas en inglés presentan algún problema. Hemos analizado muchas alternativas que nos han sugerido, pero ninguna es tan claramente «correcta» como para adoptarla. Por ejemplo, en ciertos contextos se puede usar la palabra española y francesa «libre», pero en India no la reconocerán en absoluto. Todas las alternativas propuestas para «software libre» tienen algún tipo de problema semántico, incluso «software de código abierto».

La definición oficial de «software de código abierto» (publicada por la Open Source Initiative y demasiado larga como para citarla aquí)­ procede indirectamente de nuestros criterios para el software libre. No es la misma, es un poco más laxa en algunos aspectos. No obstante, dicha definición concuerda con la nuestra en la mayoría de los casos.

Sin embargo, el significado obvio de la expresión «software de código abierto», y que es también el que al parecer la mayoría de la gente le atribuye, es: «Puedes mirar el código fuente». Ese es un criterio mucho más débil que la definición de software libre, y también mucho más débil que la definición oficial de código abierto. Incluye muchos programas que no son libres ni de código abierto.

Puesto que el significado obvio de la expresión «código abierto» no es el que sus defensores quieren darle, la consecuencia es que la mayoría la interpreta erróneamente. Según el escritor Neal Stephenson, «Linux es software de ‘código abierto’, lo que significa simplemente que cualquiera puede obtener copias de los archivos del código fuente». No creo que su intención haya sido rechazar o cuestionar deliberadamente la definición oficial. Pienso que obtuvo ese significado simplemente al aplicar las convenciones del idioma inglés. El Estado de Kansas publicó una definición similar: «Utilicen software de código abierto (OSS). OSS es el software cuyo código fuente está disponible pública y libremente, aunque los términos específicos de la licencia pueden variar con respecto a lo que se permite hacer con el código».

El New York Times publicó un artículo que ampliaba el significado del término para referirse a las pruebas de los programas beta por parte de los usuarios (se permite a unos cuantos usuarios probar una versión inicial para que den su opinión de forma confidencial), algo que los programadores de software privativo han hecho durante décadas.

El término se ha ampliado para incluir los diseños de máquinas publicados sin patente. Los diseños de máquinas libres de patentes son una loable contribución a la sociedad, pero la expresión «código fuente» no es aplicable a ellos.

Los partidarios del código abierto intentan evitar este problema apelando a su definición oficial, pero ese método correctivo es menos efectivo para ellos que para nosotros. El término «software libre» tiene dos significados naturales, uno de los cuales es el que le damos, de manera que una persona que ha comprendido la idea de «libertad de expresión, no barra libre» no volverá a equivocarse. Sin embargo, «código abierto» tiene un único significado natural, y ese significado es diferente del que sus partidarios pretenden darle. De modo que no hay forma de explicar y justificar su definición oficial de manera concisa. Eso crea aún más confusión.

Otra interpretación equivocada de «código abierto» es pensar que significa «no usar la GPL de GNU». Suele venir acompañada de otra idea equivocada, la de que «software libre» equivale a «software que está bajo la GPL de GNU». Ambas interpretaciones son erróneas, ya que la GPL de GNU se considera una licencia de código abierto, y la mayoría de las licencias de código abierto se consideran licencias de software libre. Existen muchas otras licencias de software libre, además de la GPL de GNU.

El término «código abierto» se ha extendido aún más debido a que se aplica a otras áreas tales como el gobierno, la educación y la ciencia, todos campos en los que no existe nada que se parezca al código fuente, y donde los criterios aplicables a las licencias de software no son pertinentes. Lo único que estas actividades tienen en común es que de alguna manera se invita a la gente a participar. Estiran tanto el término que ya no significa más que «participación» o «transparencia», o aún menos que eso. Lo peor es que se ha convertido en una hueca expresión de moda.

Valores diferentes pueden llevar a conclusiones similares, pero no siempre

Los grupos radicales de los años sesenta tenían fama de estar muy divididos: algunas organizaciones se dividían debido a desacuerdos sobre detalles de estrategia, y los dos grupos resultantes se trataban como enemigos a pesar de tener metas y valores fundamentales similares. La derecha se aprovechó de esto y lo utilizó para criticar a la izquierda en general.

Hay quienes intentan desacreditar al movimiento de software libre equiparando nuestro desacuerdo con el código abierto con los desacuerdos entre aquellos grupos radicales. Lo entienden al revés. Estamos en desacuerdo con el código abierto en lo que respecta a los objetivos y valores fundamentales, pero su perspectiva y la nuestra nos lleva en muchos casos a actuar de la misma manera; por ejemplo, a programar software libre.

En consecuencia, personas del movimiento del software libre y del ámbito del código abierto a menudo trabajan conjuntamente en proyectos prácticos tales como el desarrollo de software. Es de destacar que posiciones filosóficas tan distintas puedan tan a menudo motivar a personas diferentes a participar en los mismos proyectos. Sin embargo, hay situaciones en las que estos puntos de vista fundamentalmente distintos nos llevan a actuar de manera muy diferente.

La idea del código abierto es que al permitir a los usuarios modificar y redistribuir el software se obtienen programas más potentes y fiables. Pero no hay ninguna garantía de que esto sea así. Los programadores de software privativo no son necesariamente incompetentes. A veces producen algún programa potente y fiable, aun sin respetar la libertad de los usuarios. La reacción de los activistas del software libre y de los partidarios del código abierto frente a esa situación será muy diferente.

Un entusiasta puro del código abierto, uno que no esté influenciado para nada por los ideales del software libre, dirá: «Me sorprende que ustedes hayan logrado que su programa funcione tan bien sin haber utilizado nuestro modelo de desarrollo, pero lo lograron. ¿Cómo puedo obtener una copia?» Esta actitud premia planteamientos que nos quitan la libertad y nos lleva a perderla.

El activista del software libre dirá: «Su programa es muy atractivo, pero valoro más mi libertad, así que lo rechazo. Haré mi trabajo de alguna otra manera y apoyaré un proyecto para el desarrollo de un reemplazo libre». Si valoramos nuestra libertad, podemos hacer algo para conservarla y defenderla.

El software potente y fiable puede ser malo

Nuestro deseo de que el software sea potente y fiable es consecuencia del supuesto de que el software está diseñado para servir a los usuario. Si es potente y fiable, les servirá mejor.

Pero solo se puede decir que el software está al servicio de los usuarios si respeta su libertad. ¿Qué sucede si el software está diseñado para encadenarlos? En ese caso, la potencia significa que las cadenas son más restrictivas, y la fiabilidad, que son más difíciles de quitar. Funcionalidades perversas tales como el espionaje de los usuarios, las restricciones, las puertas traseras y las actualizaciones impuestas son frecuentes en el software privativo, y algunos defensores del código abierto se proponen hacer lo mismo en programas de código abierto.

Debido a la presión de las compañías discográficas y cinematográficas, el software que se pone a disposición de los usuarios está diseñado para ponerles cada vez más trabas. Esta característica perversa se conoce como «gestión digital de restricciones» DRM (véase DefectiveByDesign.org), y en su espíritu es la antítesis de la libertad que el software libre busca proporcionar. Y no solo en espíritu. Puesto que el objetivo del DRM es pisotear nuestra libertad, quienes lo desarrollan tratan de que nos resulte difícil, imposible, o que incluso sea ilegal modificar los programas que implementan el DRM.

Con todo, algunos partidarios del código abierto han propuesto software con «DRM de código abierto». La idea es que, publicando el código fuente de los programas diseñados para restringir el acceso a los datos cifrados y permitiendo que otros lo modifiquen, se obtendrá software más potente y fiable para restringir a usuarios como nosotros. Luego, el software se nos entregará en dispositivos que no nos permitirán modificarlo.

Aunque ese software sea de código abierto y utilice el modelo de desarrollo del código abierto, no será software libre ya que no respetará la libertad de los usuarios que lo ejecutan. El modelo de desarrollo del código abierto será aún peor si logra que ese software sea más potente y fiable para restringir al usuario.

Miedo de la libertad

Al comienzo, la principal motivación de quienes decidieron escindirse del movimiento del software libre para formar el grupo del código abierto fue que los planteamientos éticos del «software libre» incomodaban a muchas personas. Es cierto. Plantear cuestiones éticas como el tema de la libertad, hablar de responsabilidades y no solo de comodidad, es pedir a la gente que se cuestione cosas que quizá prefieran ignorar; por ejemplo, preguntarse si nuestra conducta es ética. Esto puede generar malestar y algunos pueden optar simplemente por ignorar estas cuestiones. Pero esto no quiere decir que tengamos que dejar de hablar de ello.

Sin embargo, eso es lo que decidieron hacer los líderes del «código abierto». Pensaron que omitiendo hablar de ética y de libertad, mencionando únicamente los beneficios prácticos inmediatos de cierto tipo de software libre, podrían «vender» el software más fácilmente a ciertos usuarios, especialmente a las empresas.

Cuando los defensores del código abierto mencionan algo más profundo, normalmente es la idea de hacer un «regalo» de código fuente a la humanidad. Presentar esto como un hecho especialmente bueno, como algo que va más allá de lo moralmente exigible, es asumir que distribuir software privativo sin código fuente es moralmente legítimo.

Tal enfoque se ha demostrado eficiente, en sus propios términos. La retórica del código abierto ha convencido a muchas empresas y particulares a usar e incluso desarrollar software libre, lo cual ha ampliado nuestra comunidad, pero solamente a un nivel práctico y superficial. La filosofía del código abierto, con sus valores puramente prácticos, impide la comprensión de las ideas más profundas del software libre. Trae a muchas personas a nuestra comunidad, pero no les enseña cómo defenderla. Eso es bueno, hasta cierto punto, pero no es suficiente para asegurar la libertad. Atraer usuarios al software libre es el primer paso del camino a recorrer para convertirse en defensores de su propia libertad.

Tarde o temprano estos usuarios se verán tentados a volver al software privativo por alguna ventaja práctica. Son innumerables las compañías que tratan de tentarlos de esa manera, algunas incluso ofreciendo copias gratuitas. ¿Por qué lo rechazarían los usuarios? Solo lo harán si han aprendido a valorar la libertad que el software libre les brinda, a valorar la libertad en y por sí misma, antes que la conveniencia técnica y práctica de algún software libre en particular. Para difundir esta idea, tenemos que hablar de libertad. Cierta dosis de «guardar silencio» en el trato con las empresas puede resultar útil para la comunidad, pero es peligroso si se vuelve tan frecuente que el amor a la libertad llega a parecer una excentricidad.

Esa peligrosa situación es justamente la que se da en la actualidad. Muchas personas implicadas en el software libre, especialmente quienes lo distribuyen, hablan poco de la libertad; normalmente porque tratan de ser «más aceptables para las empresas». Casi todas las distribuciones del sistema operativo GNU/Linux añaden paquetes privativos al sistema básico libre, y con ello invitan a los usuarios a considerar esto como una ventaja en lugar de un defecto.

Los complementos de software privativos y las distribuciones GNU/Linux solo parcialmente libres encuentran terreno fértil porque gran parte de nuestra comunidad no insiste en la libertad del software. Esto no es una coincidencia. La mayor parte de los usuarios de GNU/Linux llegaron al sistema a través del debate en torno al «código abierto», en el cual no se menciona la libertad como una meta. Las prácticas que no salvaguardan la libertad y los discursos que no hablan de libertad van de la mano, reforzándose mutuamente. Para superar esta tendencia tenemos que hablar más de libertad, no menos.

«FLOSS» y «FOSS»

Los términos «FLOSS» y «FOSS» se utilizan para ser neutrales ante el software libre y el código abierto. Si la neutralidad es el objetivo, «FLOSS» es el mejor de los dos, ya que es verdaderamente neutral. Pero si lo que se desea es defender la libertad, utilizar un término neutral no es la manera de hacerlo. Defender la libertad implica mostrar a los demás que se está a favor de la libertad.

Rivalidad en términos de popularidad

Los términos «libre» y «abierto» rivalizan por la popularidad. Las expresiones «software libre» y «código abierto» reflejan ideas diferentes, pero en la visión que la mayoría de la gente tiene del software ambas compiten por el mismo espacio conceptual. La costumbre de hablar y pensar en términos de «código abierto» constituye un obstáculo para comprender la filosofía del movimiento del software libre y pensar en ella. Si la gente ya ha empezado a asociarnos a nosotros y a nuestro software con la palabra «abierto», es posible que tengamos que provocarles una conmoción intelectual para que se den cuenta de que lo que nosotros propugnamos es otra cosa. Toda actividad que promueve el término «abierto» tiende a tupir el velo que oculta las ideas del movimiento del software libre.

Así pues, los activistas del software libre harán bien en negarse a participar en actividades que se denominan «abiertas». Aunque la actividad en sí misma sea positiva, toda contribución a la misma causará cierto daño colateral al promover la idea del código abierto. Hay muchas otras buenas actividades que se autodenominan «libres», y toda contribución a estos proyectos aportará un pequeño beneficio adicional. Con tantos proyectos útiles a elegir, ¿por qué no escoger uno que aporte mayor beneficio?

Conclusión

En una situación en la que los promotores del código abierto atraen nuevos usuarios a nuestra comunidad, nosotros, los activistas del software libre, tenemos que asumir la tarea de llevar su atención a la cuestión de la libertad. Tenemos que decir más a menudo y más alto que nunca: «¡Es software libre y te brinda libertad!». Cada vez que se dice «software libre» en lugar de «código abierto» se está apoyando nuestra causa.

Nota

En un ensayo acerca de la motivación de los programadores de software libre Lakhani y Wolf sostienen que muchos de ellos están motivados por la idea de que el software debe ser libre. Y eso a pesar de que llevaron a cabo la encuesta en SourceForge, un sitio que no apoya la idea de que este es un asunto ético.

Notas de traducción

[1]. En inglés el término «free» puede significar «libre» o «gratuito».
[2]. En inglés la expresión «free software» podría interpretarse como «software gratuito», pero esta ambigüedad no existe en español.