El 31 de marzo de 2023 es un día histórico. Twitter ha liberado el código de su algoritmo de recomendaciones. Así lo ha publicado Elon Musk:
Twitter recommendation source code now available to all on GitHub https://t.co/9ozsyZANwa
— Elon Musk (@elonmusk) March 31, 2023
Para contextualizar, veamos qué es eso de que «Twitter ha liberado el código de su algoritmo de recomendaciones». Liberar un código significa publicarlo con una licencia libre. Cuando no se indica lo contrario, por defecto y por culpa de las leyes internacionales de propiedad industrial e intelectual y organizaciones como la Organización Mundial de la Propiedad Intelectual (https://www.wipo.int/portal/es/), publicar un código, al igual que un texto, no conlleva que sea libre. Simplemente, que se puede leer y estudiar. Para que un programa se considere debe cumplir una serie de requisitos.
Libertades de código
Según la Free Software Foundation, las cuatro libertades del código son:
Libertad 0 o de uso.- La libertad de usar el programa, con cualquier propósito.
Libertad 1 o de estudio.- La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a las propias necesidades.
Libertad 2 o de distribución.- La libertad de distribuir copias del programa, con lo cual se puede ayudar a otros usuarios.
Libertad 3 o de mejora.- la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.
Para ayudar a los programadores a garantizar estas cuatro libertades, la Free Software Foundation (FSF) creó la Licencia Pública General o GPL.
Si bien es cierto que hay otras definiciones de libertad en el código, como las que hace la Open Source Iniciative y otras licencias libres, como la Python Software Foundation License, no es este el motivo de este artículo. Ya trataré estos asuntos en posteriores entregas.
Lo importante ahora es entender qué implica que Twitter haya puesto a disposición de cualquier persona a través de la red social para desarrolladores GitHub el código de su algoritmo de recomendaciones y por qué esto es tan importante.
Una trampa para las trampas
Para empezar, cualquier persona con unos conocimientos suficientes de programación puede estudiar cómo funciona ese sistema de recomendaciones, lo que lleva a dos cuestiones principales (siempre y cuando el código utilizado en los servidores de Twitter sea el mismo que han publicado en GitHub):
- Que cualquiera puede adaptar sus mensajes para ser más recomendado.
- Que Twitter no puede trampear para que unos mensajes sean más recomendados que otros.
Ahora las reglas son iguales para todos.
Miles de ojos vigilando
Es cierto que no todo el mundo será capaz de entender ese código, pero al ver que Twitter publicaba su algoritmo de recomendaciones, no he podido evitar ‘clonar’ el repositorio y tras un primer visionado rápido, se ve un código limpio y bien estructurado, lo que facilita su estudio. Quizá poco documentado para mi gusto, pero limpio y con lenguajes muy extendidos (Scala, Java, Starlark, Python, C++ y Rust).
Con unas tecnologías tan extendidas, estando el código disponible y conociendo cómo somos los programadores, estoy seguro de que varios miles de desarrolladores no dormirán por estar analizando línea a línea cómo está programado ese sistema de recomendaciones.
Lo que nos lleva a otra conclusión: si hay algún tipo de error o maldad en ese código, será inmediatamente reportado, bien a la empresa que gestiona la red social (qué mejor carta de presentación para conseguir un puesto de trabajo en Twitter que corregir un error en su propio código) o bien, mediante otros cauces que hagan ganar más notoriedad pública a aquel que encuentre algún fallo.
Ley de Linus
Como dice Eric S. Raymond en lo que él acuñó como «Ley de Linus» (no Linux, sino Linus, por Linus Torvalds):
Dada una base lo suficientemente amplia de probadores y colaboradores, casi todos los problemas se identificarán con rapidez y su solución será obvia para alguien.
Así que cualquier usuario, sepa o no sepa programar, va a estar seguro de que no sólo las reglas son transparentes sino que el código sólo puede mejorar.
Además, la libertad 0, permite que cualquier usuario pueda usar ese código con cualquier propósito. Con la cantidad de enemigos que tiene Twitter y Elon Musk, seguro que la mano invisible levanta una multiplicidad de servicios cuya única finalidad sea fiscalizar que el código publicado sea el mismo que el código utilizado. O, al menos, que la plataforma devuelva los resultados esperados según el código publicado.
Modificación y comunicación
Otro punto muy importante, con consecuencias imprevisibles, es que ese código puede no sólo ser usado por cualquier persona, sino modificado y distribuido, no sólo el código tal cual, sino el código modificado.
Por no alargarme demasiado, usaré un símil: ¿imaginan que CocaCola publicase su receta y permitiera que cualquiera pudiera usarla y comercializarla como creyese conveniente? ¿Y que además de poder usarla, pudiera mejorarla o adaptarla a los gustos de públicos concretos?
Es cierto que hay millones de programas libres y que el movimiento del Software Libre no ha hecho más que crecer y crecer desde la creación de la FSF en 1985. Seguramente, el proyecto libre más famoso será el sistema operativo GNU/Linux, pero la mayoría de los servidores de Internet funcionan con software libre, tanto en el sistema operativo, como en otros servicios (web, correo electrónico, FTP…), la mayoría de las páginas web están desarrolladas con herramientas libres, como WordPress, PHP, Python, Laravel, JavaScript, Bootstrap… y también a nivel de usuario, con Open Office o Mozilla Firefox, entre otros programas ampliamente extendidos entre los usuarios.
Usaré estas tres últimas herramientas citadas para reforzar mi idea de que esta decisión de los directivos de Twitter es histórica.
Bootstrap
Bootstrap es, seguramente, el framework de CSS más usado actualmente y el más popular en GitHub. Sin entrar en tecnicismos, diremos que es una colección de herramientas para hacer que las páginas web se vean bien en cualquier dispositivo y, además, se vean bonitas. Es una herramienta desarrollada por el propio equipo de Twitter y liberada en 2011.
Es decir, Twitter no ha necesitado a Elon Musk para liberar código. Ya sabían por propia experiencia que conseguir que un pequeño proyecto nacido en una hackweek haya alcanzado estos niveles de popularidad sólo es posible si es software libre. Pero no es comparable en absoluto. Bootstrap es un conjunto de herramientas para construir otras aplicaciones, ni de lejos es el núcleo del negocio de Twitter. Que cualquiera de nosotros usásemos los pinceles de Goya, la guitarra de Paco de Lucía o las plumas de Cervantes, no nos convertiría en genios de la pintura, de la música o de la literatura.
Ni Firefox ni OpenOffice
Esta decisión, creo, tiene más que ver con la historia de Firefox o de OpenOffice. En un principio, Netscape lideraba el uso de navegadores pero, en la llamada «guerra de los navegadores», perdió cuota de mercado a favor de Internet Explorer, por lo que liberaron su código, lo que dio paso a la creación de Mozilla y, posteriormente, a Mozilla Firefox.
Algo parecido pasó con StarOffice que, en medio de una competencia durísima con el Office de Microsoft, SunMicrosistems compró la empresa StarDivision en 1999 y el año siguiente liberaron el código llamándole OpenOffice.
Gracias a liberar el código de ambas herramientas, estas mejoraron más rápido que cuando eran privativas. También mejoraron muchísimo más que su competencia. Por ejemplo, las pestañas de los navegadores o exportar a PDF, llegaron mucho antes a los programas libres que a los de Microsoft. Por mucho dinero que maneje una única empresa, sus recursos siempre serán mucho más limitados que los de la Comunidad del Software Libre.
Efectos de la liberación del código
Aunque un usuario no estudie el código de las herramientas que usa, por lo que, a priori, podría parecer irrelevante el hecho de que un programa sea libre o no, los efectos derivados del hecho de ser libre son fundamentales para su desarrollo técnico y su evolución en el mercado.
Veamos tres de ellos:
1.- La confianza del usuario. Cualquier usuario que usa software libre sabe que está libre de amenazas externas o malware, ya que siempre hay alguien que ha estudiado ese código.
2.- El soporte recibido. No hay más que hacer una búsqueda en Internet de cualquier herramienta libre para ver la cantidad de documentación, tutoriales, cursos, foros con preguntas y respuestas… que nos podemos encontrar.
3.- La calidad. Al no tener restricciones para la mejora, siempre que un programador tiene una necesidad, la va a programar. Y como la comunidad le ha aportado mucho y el esfuerzo de desarrollar esa mejora ya lo ha realizado, la tendencia natural es a compartir su código.
¿Como un virus?
Habitualmente se dice que el copyleft tiene un «efecto vírico». Vírico no sólo porque las obras derivadas siguen siendo libres, sino porque se expande de forma imparable. Este efecto es mucho más importante, si cabe en una red social, que vive del servicio que ofrece el software, no de dar servicios al software.
Una red social debe expandirse como un virus. Y debe convivir con otro replicante egoísta, el meme. Debe permitir esa simbiosis para expandirse. Debe permitir esa simbiosis para sobrevivir. Debe expandirse para sobrevivir y debe sobrevivir para expandirse.
El líder en redes sociales en números de usuarios es Facebook, que tiene casi tres mil millones. Twitter tiene unos 556 millones de usuarios. Y hay varias redes sociales con más usuarios que Twitter, como YouTube, Whatsapp o Instagram.
Pero ninguna ha liberado su código.
Es imposible saber el efecto que esto va a suponer en el mercado de las redes sociales. Pero podemos intuir que no va a tener ningún efecto negativo, ya que mostrar transparencia a los usuarios difícilmente va a tener efectos negativos. Y que los efectos van a ser muy positivos, como en los casos que hemos visto y, concretamente, en el caso de Bootstrap, conocen bien en Twitter.
Elon Musk y Baltasar Gracián
En septiembre de 2022, Musk nos sorprendió nombrando a Baltasar Gracián y su «Oráculo manual y arte de prudencia» en Twitter y en español:
Ahora, ha demostrado que algo ha aprendido de él y de su aforismo 252:
Ni todo suyo, ni todo ageno: es una vulgar tiranía. Del quererse todo para sí se sigue luego querer todas las cosas para sí. No saben éstos ceder en la más mínima, ni perder un punto de su comodidad. Obligan poco, fíanse en su fortuna, y suele falsearles el arrimo.
Conviene tal vez ser de otros para que los otros sean dél, y quien tiene empleo común ha de ser esclavo común, o «renuncie el cargo con la carga», dirá la vieja a Adriano. Al contrario, otros todos son agenos, que la necedad siempre va por demasías, y aquí infeliz: no tienen día, ni aun hora suya, con tal excesso de agenos, que alguno fue llamado «el de todos». Aun en el entendimiento, que para todos saben y para sí ignoran. Entienda el atento que nadie le busca a él, sino su interés en él, o por él.
Baltasar Gracián
Mark Zuckerberg sigue los pasos de Bill Gates (del quererse todo para sí se sigue luego querer todas las cosas para sí. No saben éstos ceder en la más mínima, ni perder un punto de su comodidad).
Elon Musk, por el contrario, ha preferido seguir el consejo de Baltasar Gracián (conviene tal vez ser de otros para que los otros sean dél) y de Eric S. Raymond (resulta evidente que el libre mercado de culto al ego en Linux funciona mejor en este aspecto que la financiación masiva para la producción comercial de títulos de referencia de los fabricantes de software).
El regalo egoísta de Musk
Este regalo de Elon Musk a la comunidad le ha hecho ganar a Twitter de un plumazo miles de programadores, documentadores, betatesteadores y un sinfín de colaboradores a los que no hubiera podido fichar de ninguna otra manera. Y ha conseguido limpiar la mala fama que se ha ido ganando en los últimos años de la manera más fehaciente posible, al más puro estilo Linus Torvalds: «Talk is cheap. Show me the code» (Hablar es barato. Enséñame el código).
Copyleft Fernando Vicente. Puede copiar este texto.
Escrito originalmente en Markdown con vi sobre Ubuntu GNU/Linux, usando sólo software libre.
2 Comentarios
Qué bueno y que claro
Gracias!
Muy buen artículo. Me ha gustado el argumento que señala la doble posibilidad que se abre de engagement de buenos programadores y de incrustación de otros desarrollos paralelos que nazcan desde un posible ecosistema centrado en Twitter. No obstante, monetizarlo no depende tanto de la calidad de la comunidad que haya detrás, sino del caso de negocio y de la deriva que tome la red social. Sería paradójico que se genere un hub intelectual non-for-profit alrededor del cogido y un debora cerebros muy rentable à la tik-tok en la red social