El software de código abierto es esencial para el funcionamiento de nuestra Internet moderna. Es esencial para toda nuestra tecnología moderna. Las herramientas de código abierto forman los bloques de construcción simples y funcionales que ayudan a impulsar todo, desde televisores hastaChatGPT, y es casi imposible exagerar la importancia del movimiento de código abierto para hacer accesible el desarrollo de software.
Sin embargo, la comprensión de los valores del software de código abierto es escasa. Las empresas y los negocios a menudo ignoran sus requisitos de licencia, e incluso muchos desarrolladores no conocen las licencias con las que operan. Ya sea un desarrollador, un entusiasta de la tecnología, un líder empresarial o simplemente una parte interesada, es importante respetar los esfuerzos de los desarrolladores de código abierto y reconocerles sus contribuciones. Como desarrollador o usuario de software, también podría exponerse a demandas si utiliza una licencia de forma indebida.
¿Qué es el código abierto?
No es otra palabra de moda
Existen distintas definiciones de código abierto, pero por lo general todas coinciden en los mismos puntos clave. Para ser de código abierto, el software debe estar disponible de forma gratuita y los miembros del público pueden inspeccionar, modificar y distribuir libremente el código a su discreción. Esto incluye la venta o comercialización de cualquier trabajo derivado (es decir, mejorado) o agregado (es decir, la combinación de varios fragmentos de software) que pueda producirse a partir de software de código abierto. Por ejemplo, si utilizo una biblioteca de código abierto para el control preciso del tiempo con el fin de escribir una excelente aplicación de reloj paraWindows 11, tengo la libertad de cobrar a los usuarios por mi nueva aplicación de reloj sin reembolsar al autor de la biblioteca.
Podemos ver ejemplos de software de código abierto para demostrar lo extendido que está. Apache Kafka es una plataforma de transmisión de eventos desarrollada y de código abierto por la Fundación Apache. Ha sido de código abierto desde 2011. Kafka ahora se utiliza en más del 80% de las empresas de Fortune 100, y aparece en todo, desde aplicaciones de transporte como Uber hasta la fabricación industrial. Es una tecnología esencial que es fundamental para una serie de grandes empresas en una variedad de sectores.
¿Quién decide qué es código abierto?
Es importante dejar en claro que no existe una definición precisa de código abierto. El código abierto se entiende mejor como un conjunto de valores para crear y compartir software. Diferentes organizaciones tienen diferentes estándares sobre cuáles son esos valores. El sitio web opensource.com, respaldado por Red Hat, describe elestilo de código abiertoy la Open Source Initiative publicasu definiciónpara considerar una licencia como de código abierto.
Código abierto es un término que originalmente hacía referencia al software de código abierto (OSS). El software de código abierto es un código diseñado para ser de acceso público: cualquiera puede verlo, modificarlo y distribuirlo como crea conveniente.
¿El código abierto sólo se aplica al software?
El código abierto no se limita al software, aunque comenzó con el software, y se refiere a todo aquello que la gente puede modificar, inspeccionar y mejorar libremente. Un modelo de una impresora 3D publicado libremente en línea podría considerarse código abierto, por ejemplo.
¿Qué es una licencia de software?
No es lo que necesitas para conducir un coche.
Una licencia de software es un documento legal que se distribuye junto con el software y que especifica exactamente para qué se puede y no se puede utilizar. Esto puede incluir tarifas o reembolsos adeudados a los desarrolladores (u otros grupos) y condiciones de uso. Es posible que haya visto licencias de software etiquetadas como EULA, es decir, una licencia de software para el usuario final. Esta licencia describe las condiciones de uso que usted, como usuario final, debe cumplir para utilizar el software.
El software se divide en dos categorías: de código abierto y de código cerrado, según si el código fuente original se publica para que cualquiera pueda inspeccionarlo. La mayoría del software de código cerrado se publica con una licencia específica diseñada para ese software, que suele ser única, conocida como licencia propietaria.
Software libre
El software libre y de código abierto (conocido como FOSS) suele venir con una de varias licencias estándar diseñadas por la comunidad o por organizaciones comprometidas con los ideales del código abierto, como el Proyecto GNU o Red Hat. Algunas de ellas incluso están escritas porla NASA.Las licencias de código abierto son importantes porque permiten que un desarrollador comprenda fácilmente las restricciones con las que lanzará su software sin tener que contratar a un equipo legal (o su propia experiencia) para escribir una licencia legalmente vinculante. Diferentes licencias permiten diferentes usos e imponen diferentes restricciones al software. Especificamos "libre y de código abierto" porque no todo el software de código abierto tiene que ser gratuito.
Tipos de licencia de software
Conozca sus derechos al escribir software
No es necesario conocer los detalles de cada licencia. Casi todas las licencias de código abierto no ofrecen garantías (es decir, no garantizan que el software funcione como se espera) e incluyen protección contra la responsabilidad del desarrollador. Esto es importante para proteger a los desarrolladores de litigios si los productos creados con su software fallan y causan daños. Por ejemplo, un fabricante de automóviles que utilice una biblioteca FOSS no podría demandar al desarrollador del software FOSS si este funcionara mal y provocara accidentes en algunos de sus automóviles.
En general, podemos clasificar las licencias de software como:dominio público,permisivas,copyleftopropietarias. A veces se menciona un quinto tipo, LGPL o Lesser GPL, pero es menos relevante excepto en aplicaciones específicas. Una licencia de dominio público es cualquier código totalmente sin restricciones, mientras que una licencia propietaria es aquella que restringe cualquier copia, modificación o distribución no autorizada. Para fines de FOSS, nos centraremos en las licencias permisivas y copyleft.
Licencias permisivas
Más allá de los aspectos básicos, las licencias se vuelven más específicas. Algunas licencias prohíben el uso de software libre en otros productos de código cerrado, mientras que otras son casi totalmente ilimitadas. Las licencias que permiten la reproducción y modificación libre de software con pocas o ninguna condición se conocen como permisivas. Las licencias Apache y MIT son licencias permisivas. Son extremadamente breves (lalicencia MIT completaes más breve que este artículo) y básicamente no imponen restricciones, salvo las de proteger al desarrollador de demandas judiciales.
¿Copyleft?
Una licencia se denomina copyleft si exige que las versiones modificadas del mismo software utilicen la misma licencia o una similar. Para volver a una analogía anterior, si escribiera una aplicación de reloj para Windows utilizando una excelente biblioteca de cronometraje gratuita que tiene licencia GPL, también se me exigiría que publicara mi aplicación de reloj bajo una licencia GPL. La idea detrás del copyleft es que el software libre y de código abierto genere versiones nuevas y mejoradas del mismo software, en lugar de actuar como plataforma de lanzamiento para versiones propietarias de código cerrado más adelante.
Un buen ejemplo de licencia copyleft es Bash (el símbolo del sistema por defecto en muchasdistribuciones Linux), que se distribuye con una licencia GNU GPL. Esto prohíbe que el software que incluye Bash se use comercialmente en cualquier producto de código cerrado. Usted es libre de ganar dinero con un producto que use Bash, pero el producto también debe ser de código abierto. Como consecuencia, cualquier distribución Linux que incluya Bash también debe tener licencia GPL y, por lo tanto, también de código abierto. Esto crea un efecto de transmisión en el desarrollo de software libre. El copyleft es más restrictivo que una licencia permisiva, pero aún puede ser de código abierto, a diferencia de una licencia propietaria.
El copyleft (en términos muy simples) es la regla según la cual, al redistribuir un programa, no se pueden añadir restricciones para negar a otras personas las libertades fundamentales. Esta regla no entra en conflicto con las libertades fundamentales, sino que las protege.
La controversia del copyleft
Las licencias copyleft suelen ser controvertidas, ya que son incompatibles con las licencias propietarias. La compatibilidad de una licencia se refiere a cómo se pueden combinar las licencias. Si un producto utiliza cualquier software con licencia GPL, por muy poco que sea, tambiéndebeestar licenciado bajo la GPL. Incluso el uso más mínimo de cualquier código GPL hace imposible publicar software de código cerrado, una restricción que ha resultado controvertida. En 2001, Steve Balmer, entonces director ejecutivo de Microsoft, calificóa Linuxdecáncerdebido a su licencia GPL. No es posible utilizar software GPL en un producto que luego se publique bajo una licencia MIT muy permisiva, por ejemplo.
Linux es un cáncer que se adhiere en un sentido de propiedad intelectual a todo lo que toca.
¿Qué licencia debo utilizar?
Existen algunos recursos excelentes que pueden ayudarle a tomar esta decisión. Uno de mis favoritos eschoosealicense.com, que simplifica la comprensión de las diferentes licencias y lo guía a través de un proceso de selección basado en preguntas. También tienen recursos para licencias que no son de software. Si desea escribir software propietario o ganar dinero con su código, también hay algunas licencias propietarias estándar disponibles (suponiendo que su trabajo se publicará públicamente). Si desea publicar software libremente, las licencias MIT y Apache son opciones comunes.
Violar una licencia
No todo el mundo respeta los ideales del software libre
Si bien una licencia es legalmente vinculante, esta vinculación es tan buena como su cumplimiento. Los desarrolladores de código abierto, por definición, están publicando su trabajo al mundo de forma gratuita y, por lo tanto, a menudo no hay dinero disponible para costosas batallas legales o para hacer cumplir sus licencias. A menudo, corresponde a las organizaciones comprometidas con el código abierto demandar a los infractores de una licencia, o a la comunidad denunciarlos.
Muchas empresas de alto perfil, desde Tesla hasta TikTok, han violado públicamente las licencias. TikTok fue acusada recientemente de incluir código del software de streaming de código abierto OBS en su software Live Studio sin publicar el código fuente, una clara violación de la licencia GPL permisiva de OBS. En 2018, el Conservatorio de la Libertad del Software presionó a Tesla para que revelara parte del código fuente de su piloto automático después de una violación de la GPL.
Organizaciones como el Proyecto GNU o GPL-violations.org intentan controlar las violaciones de la GPL y persiguen a los infractores más conocidos. A menudo, las empresas pueden responder a la reacción negativa de la comunidad eliminando el software infractor o publicando una cantidad suficiente del código que contiene el software con licencia para satisfacer sus requisitos.
¿Cómo puedo verificar si tengo una licencia?
Normalmente es fácil encontrar la licencia con la que se publica un software. La convención dicta que la licencia del software se incluye en un archivo llamadoLICENSEen la raíz del repositorio de un proyecto (sin extensiones de archivo). Herramientas como GitHub pueden buscar esta licencia, identificar su contenido e indicarle una licencia en su GUI, incluyéndola en la información del repositorio. Las capturas de pantalla a continuación se tomaron delGithub de Tesla.
Una piedra angular esencial
El software de código abierto y las licencias que lo protegen son una piedra angular poco conocida pero esencial de nuestro mundo moderno. Los desarrolladores de código abierto suelen crear las herramientas simples y fundamentales necesarias para que existan productos más complejos y las lanzan de forma gratuita. Las licencias copyleft ayudan a perpetuar este ciclo, alentando a más empresas a contribuir al ecosistema de código abierto. El software libre y de código abierto está en todas partes y penetra en casi todos los rincones de todos los mercados en los que opera la tecnología. Sus historias de éxito son casi infinitas y es esencial comprender el ecosistema de licencias que lo promueve.