Pero ¿qué demonios es el software libre?
Este es el primero de una serie de artículos en los que me gustaría dejar clara mi posición respecto al software libre, código abierto, y otras categorías adyacentes. Se puede resumir en tres puntos:
- La vertiginosa evolución en la manera de producir software ha provocado una brecha entre el significado de los términos “software libre” y “código abierto” tal y como se plantearon hace 40 y 25 años respectivamente y la forma en la que se usan dichos términos, tanto por activistas como por gente común.
- Los activistas promueven el software libre por unas supuestas bondades que no se corresponden con los problemas que expresan las usuarias, al mismo tiempo que subestiman las habilidades técnicas necesarias para instalar y usar dicho software.
- Sistemáticamente se elige el camino de la autogestión por ahorro de costes e independencia sin tener en cuenta el tiempo y habilidades necesarios para operar cualquier software moderno, provocando situaciones de desgaste, problemas de disponibilidad, y fallos de seguridad.
Esta pobreza dialéctica, esta falta de empatía, y esta aversión al dinero debilitan los objetivos emancipatorios del software libre, enturbian cualquier discusión, e impiden avanzar.
- Pero ¿qué demonios es el software libre?
- Podríamos empezar por entender (próximamente)
- Cállese y coja mi dinero (próximamente)
Como hace tiempo que vengo barruntando la cuestión del Software Libre en la Economía Social y Solidaria, en un momento dado pregunté en un grupo de gente afín «¿qué entendéis por tecnologías o herramientas “libres”?». Las respuestas fueron bastante variopintas:
- Tecnología que se pueda observar, investigar y mejorar
- Informática para servir a la gente. Y la gente al servicio de la informática/tecnología
- Libres de licencias
- Democratización de la tecnología
Al principio miré estas respuestas con cierta ternura. Me llamó la atención que nadie hiciese referencia a la Free Software Definition, o que se mencionase la ausencia de licencias, justamente cuando el Software Libre se define a través de los derechos de autor.
Pero pronto me di cuenta de que la confusión era generalizada incluso (si se me permite) entre expertos en la materia. Y esta confusión no siempre es inocente.
Openwashing a cholón
Por ejemplo, recientemente fue de actualidad la publicación de Llama 3.1, un nuevo modelo de “Inteligencia Artificial” de la empresa Meta. El propio anuncio hace referencia varias veces al hecho de que es un modelo de código abierto (“the first frontier-level open source AI model”).
Pero esto tiene, como mínimo, dos problemas.
El primero es que la Open Source Initiative, la guardiana de la Open Source Definition, lleva meses trabajando en dilucidar qué significa “open source” en el contexto de modelos preentrenados. Este esfuerzo, denominado Open Source AI Definition (OSAID), está en una fase muy preliminar todavía: hay un borrador online, y el plan es publicar una primera versión estable a finales de 2024.
A falta de esa primera versión estable, el borrador de la OSI manda que, para poder decir que un modelo es abierto, tienen que serlo sus datos de entrenamiento, la arquitectura, los parámetros (o pesos), y el código fuente. De Llama 3.1 tenemos sus pesos, su código, y nada más – por tanto, cuando Meta dice que su modelo es “open source”, en el mejor de los casos es una aproximación.
Pero es que hay más. ¡La licencia del modelo ni siquiera cumple con la Open Source Definition! Como señala David Gray Widder en Mastodon, la “Llama 3.1 Community License Agreement” tiene una cláusula que va en contra del mandato de “no discriminación” (o la Libertad 0 de la Free Software Definition).
Estas polémicas no son nuevas. Desde mediados de la década pasada se suceden anuncios rimbombantes de empresas que dicen que un producto nuevo es Open Source (con mayúsculas) como forma de atraer la atención de la comunidad de desarrollo, cuando en realidad se salta alguna de las condiciones fundamentales. Es lo que se llama openwashing (de “greenwashing”, en español “ecopostureo”).
A alguien le podrá parecer ridículo discutir sobre definiciones como estas. Pero las palabras son importantes, y aquí hemos venido a arrojar luz.
Vale, pero todo esto es sobre el Código Abierto. ¿Qué tiene que ver con el Software Libre? ¿Acaso no son archienemigos? Bueno, aquí viene otra confusión enormemente extendida.
El Software Libre y el Código Abierto son lo mismo, excepto cuando no lo son
Sigue existiendo un cisma abierto entre los defensores del Software Libre y la apisonadora del Código Abierto: los primeros dicen que lo segundo es una versión aguada y capitalista de lo primero.
Pero si rascamos un poco más, lo que vemos es que la propia Free Software Foundation y el proyecto GNU reconocen que las diferencias entre ambas son “pequeñas”. Bien es cierto que, de nuevo, las palabras son importantes, y la FSF prefiere el término “Software Libre” porque hace referencia a la libertad.
Pero ¿de dónde viene esta vieja polémica entonces? Pues seguramente del hecho que la FSF y el proyecto GNU principalmente usan licencias llamadas “copyleft” (una transformación de la palabra “copyright”). Dichas licencias incluyen una cláusula que obliga a que las versiones modificadas del software retengan los términos de la licencia original. Es lo que ha hecho que algunos se refieran a estas licencias como “virales”.
Como describe Luis Villa en su charla en LibrePlanet de 2016, tanto la visión “permisiva” como la “copyleft” se pueden relacionar con debates filosóficos sobre la libertad que datan, como mínimo, del siglo XVII. Si pensadores desde John Locke hasta Isaiah Berlin han dado vueltas a esta cuestión, ¿no convendría elevar el debate en vez de convertirlo en una lucha entre pragmáticos e idealistas, o entre puros y vendidos?
El software privativo ha muerto
Arriba he dicho que el Código Abierto es una apisonadora y ha sido a propósito. En la actualidad, la Linux Foundation estima que el FOSS (“Free and Open Source Software”, todo en el mismo saco) constituye entre un 70 y un 90 % de cualquier software moderno.
¡Pensemos bien esto por un momento! En los '80 tenía sentido hablar de software privativo vs software libre. Pero es que hoy en día cualquier cosa que llamemos software privativo es en realidad 90 % código abierto, y 10 % una fina capa propietaria por encima. Y lo mismo se puede decir del “software libre” como categoría separada: muchos de sus componentes son, en realidad, “código abierto” (véase sección anterior).
Hay ejemplos muy cercanos de esto. Por ejemplo, el navegador web Google Chrome es en realidad una capa de barniz por encima de Chromium: decenas de millones de líneas de código disponibles bajo licencia BSD de 3 cláusulas. ¿Realmente tiene sentido trazar una línea en la arena y decir que usar Chromium nos hace moralmente puros, pero usar Chrome es un pecado?
El Código Abierto y el Software Libre ya no son solo hobbies de voluntarios que hablan entre sí por listas de correo y que programan en su tiempo libre: son una industria multimillonaria. Las empresas están más presentes que nunca, y de hecho han contribuido a que muchísimos desarrolladores puedan vivir del código abierto, una reclamación histórica.
Y ojo, no estoy aquí defendiendo a Google y tampoco diciendo que Chrome y Chromium son lo mismo, porque no lo son. Mi punto es que tenemos que evolucionar el debate, porque el mundo ha cambiado muchísimo.
Lo que no está escrito en la licencia
Lo cierto es que el debate sobre licencias está superado desde hace tiempo. Hasta tal punto que muchos estudiosos del Código Abierto abiertamente ya dicen que el foco debería ser la gobernanza y el control.
En esta presentación de 2016 de Thomas Robitaille, uno de los desarrolladores de Astropy, se habla del surgimiento de algo que iba más allá del Código Abierto o el Software Libre: el Desarrollo en Abierto (“Open Development”).
Este concepto es tan obvio hoy en día que ni siquiera hablamos de él. Es muy difícil pensar en productos de código abierto o software libre que se desarrollen de puertas adentro, que no tengan un tablón de incidencias, que no acepten pull requests.
Lo que sí está ocurriendo es que muchas empresas que producen código abierto, especialmente las que lo hacen como parte central de su negocio, quieren ejercer un control más estrecho sobre el software que producen.
Últimamente son frecuentes los episodios de empresas que venían desarrollando un software abierto con mucha tracción y que en un momento dado deciden cambiar la licencia y que deje de ser estrictamente Código Abierto. En marzo de 2024 fue Redis, y en agosto de 2023 fueron los productos de HashiCorp. Lo que suele ocurrir a continuación es que la comunidad muestra su enfado en redes y se producen una o varias bifurcaciones (“fork”) del proyecto original.
A medida que la industria sigue madurando, pronto empezaremos a ver cada vez más empresas que directamente utilizan categorías alternativas, como el Fair Source. Esta iniciativa, que se lanzó esta semana, tiene un foco dual: la libertad de las usuarias y la viabilidad económica de producir software.
Como cuenta Chad Whitacre en su maravilloso texto sobre el Fair Source, Dirk Riehle empezó a distinguir en 2008 entre el Código Abierto desarrollado por la Comunidad (así, en mayúsculas) y el desarrollado por empresas. Después de varios años de evolución, en 2020 dijo directamente que el Código Abierto desarrollado por un único actor es “software neo-propietario”.
Entiendo el punto sobre la gobernanza y el control, pero yo personalmente encuentro difícil llamar software neo-propietario a un software que tiene una licencia abierta y todo el código online. Es más: ¡ningún proceso de relicenciamiento se puede hacer de manera retroactiva! Por tanto, en el momento en que un software con la licencia apropiada toca Internet, es un regalo que dura para siempre.
Por esta regla de tres, ¿cabría llamar a Mastodon software neo-propietario, habida cuenta de las numerosas quejas que ha habido durante años de que los desarrolladores, que son quienes tienen control del proyecto, no hacían caso de las demandas de la comunidad?
Tal vez es hora de dejar los nombres y categorías antiguos en paz y buscar otros. ¿Tecnología Cooperativa?
En resumen: ya no sirve con tener software publicado bajo fuentes abiertas. Se da por hecho (más allá de si la licencia tiene copyleft o no), puesto que es la forma más eficiente de producir software. Lo que demanda gran parte de la comunidad son procesos de gobernanza claros y a poder ser abiertos. Y eso es mucho más difícil de conseguir, porque es un problema humano y de organización, y no un problema técnico.
Es decir:
- Tecnología que se pueda observar, investigar y mejorar
- Informática para servir a la gente. Y la gente al servicio de la informática/tecnología
- Libres de licencias
- Democratización de la tecnología
¿Y qué falta para acercarnos un poco más a atajar ese problema humano?
Lo discutiremos en el siguiente artículo.