Los desarrolladores y las empresas utilizan las licencias de software para declarar explícitamente los derechos de los consumidores. Además, el uso de una licencia de software protege la propiedad intelectual del desarrollador—la aplicación y el código fuente—de la redistribución, la reutilización y la alteración. Los acuerdos de licencia de software pueden mejorarse si los consumidores y los desarrolladores comprenden mejor lo que son y los tipos disponibles.
En este artículo, describimos qué es una licencia de software, por qué son importantes y siete tipos diferentes de licencias de software con ejemplos para demostrar sus usos específicos.
Relacionado: Las diferencias entre un desarrollador de software y un ingeniero de software
¿Qué es una licencia de software?
La propiedad intelectual de un desarrollador de software está protegida por una licencia de software, que comprende su código fuente y su código objeto. Una licencia de software suele definir el alcance de los derechos de autor de un software, si los usuarios están autorizados a distribuirlo y cómo pueden utilizarlo. Las licencias de software suelen estar escritas en forma de texto y restringen contractualmente las reclamaciones del usuario contra el desarrollador. Además, las licencias de software pueden incluir restricciones sobre una amplia gama de derechos del usuario final, como la instalación, las garantías y las responsabilidades.
Hay dos categorías principales de licencias que engloban la mayoría de los programas informáticos y sus acuerdos:
- Licencias de propiedad: Estas licencias, a menudo denominadas licencias de software de código cerrado, restringen la capacidad de los usuarios para modificar, reutilizar o compartir el código del software. Una gran parte de las licencias de software entra en la categoría de licencias de propiedad, ya que la mayoría de las licencias de software comercial tienen el propósito de limitar el acceso de un usuario y definir los términos de uso apropiado.
- Licencias de software libre: Las licencias FOSS, o licencias de software libre y de código abierto, son acuerdos muy permisivos que permiten a los usuarios modificar, utilizar, compartir y reutilizar el código fuente de un producto de software sin restricciones. Las licencias FOSS otorgan a los usuarios un alto nivel de autoridad en cuanto al uso apropiado.
Casi todo el software tiene una licencia, pero los desarrolladores también pueden optar por donar los derechos de su software al dominio público. En estos casos, el software sigue sin licencia, no está protegido por derechos de autor y está disponible libremente para su uso por el público. En comparación, el software privado que no está cubierto por una licencia, como las aplicaciones empresariales que los desarrolladores no han donado al dominio público, sigue teniendo limitaciones definidas por la ley de derechos de autor. Con esto, es importante tener en cuenta que hay una diferencia significativa entre la concesión de licencias y la propiedad, ya que tanto las licencias propietarias como las de código abierto dan derecho a los usuarios, pero no les transfieren la propiedad.
Relacionado: ¿Qué es el desarrollo de software?
¿Cómo funcionan las licencias de software?
Cuando los nuevos usuarios lanzan un software por primera vez, normalmente tienen que firmar un acuerdo de licencia de usuario final (EULA) que define la relación legal entre un proveedor de software, o licenciante, y el usuario del software, o licenciatario. Los EULAs suelen diferir en los términos y condiciones exactos que definen en función del tipo de software, las preferencias del editor y el uso que se pretende hacer del mismo. Sin embargo, todos los EULAs contienen una cláusula que especifica cuándo entran en vigor sus condiciones, ya que las acciones del usuario final—como abrir un paquete, hacer clic en un botón o simplemente utilizar el software—suelen catalizar estas condiciones.
Antes de que existiera el software basado en la nube, la mayoría de los usuarios compraban copias físicas del software con una licencia de uso acompañada de un sencillo EULA. Con las aplicaciones basadas en la nube, los EULAs ahora suelen incluir otras estipulaciones relacionadas con la compra y el uso. Por ejemplo, las aplicaciones basadas en la nube que ofrecen software como servicio (SaaS), un método de entrega de software que permite a los usuarios acceder a los datos desde múltiples dispositivos y ubicaciones con acceso a Internet, suelen incluir condiciones de licencia relativas a la duración de un acuerdo, los términos de cancelación, los cargos mensuales o anuales por uso y la recuperación de los cargos si un usuario cancela un acuerdo durante su duración.
2. ¿Por qué son importantes las licencias de software?
Las licencias de software son importantes porque protegen la propiedad intelectual de los desarrolladores. Además, las licencias pueden proporcionar a los desarrolladores una vía clara de recurso legal cuando los usuarios no cumplen con las estipulaciones señaladas a través de los acuerdos de licencia. De este modo, las licencias de software pueden garantizar que todas las partes implicadas en el proceso de creación y uso del software puedan beneficiarse de él.
Además, las licencias de los programas informáticos son útiles, ya que definen hasta qué punto un usuario puede utilizar el software, acceder a él y modificar su código fuente. La mayoría de los programas informáticos con licencia proporcionan a los usuarios unos CLUF que establecen claramente una delimitación legal de los derechos del usuario para instalar y utilizar el software después de comprarlo. Por lo tanto, las licencias de software permiten a los usuarios comprender mejor su relación con el software, su código y sus obligaciones de reutilización o modificación.
Relacionado: Guía de búsqueda de empleo: Gestión de productos e ingeniería de software
7 tipos de licencias de software
Existen siete tipos principales de licencias de software a disposición de los desarrolladores y las empresas cuando liberan software para su compra y uso. Estas seis licencias pueden servir de base para los CLUF. A continuación se explican estas seis licencias y se dan ejemplos de su funcionamiento práctico:
1. Licencia de dominio público
El software con licencia de dominio público está abierto para su uso, modificación y redistribución sin restricciones. Se trata de un tipo de licencia muy permisiva que no limita la capacidad de los usuarios para adoptar el código fuente de un software en nuevas aplicaciones o proyectos. Además, las licencias de dominio público permiten a los usuarios reutilizar el software en la forma que deseen. El software de dominio público puede ser increíblemente útil para los programadores y desarrolladores principiantes que deseen crear aplicaciones alternativas a partir de la base de un software. Por ejemplo, SQLite, una biblioteca en lenguaje C utilizada para la gestión de bases de datos, ofrece software de dominio público que los usuarios pueden modificar para darle otros usos.
Es importante que los usuarios tengan cuidado al integrar software de dominio público en nuevos proyectos. Esto se debe a que el software con este tipo de licencia puede no obedecer a las prácticas comunes de codificación o poseer el nivel de estándares de seguridad que puede requerir otro software con licencia. Además, como se mencionó anteriormente, algunos programas sin licencia no pertenecen al dominio público—algunos programas privados pueden no tener licencia—y los usuarios deben verificar que los desarrolladores hayan licenciado su software como tal antes de modificarlo, copiarlo, reutilizarlo o distribuirlo.
2. Licencia Copyleft
Las licencias Copyleft, comúnmente conocidas como licencias recíprocas o licencias restrictivas, permiten a los usuarios modificar el código y distribuir trabajos derivados con la condición de que los usuarios distribuyan las adaptaciones bajo la misma licencia de software. Un ejemplo muy conocido de esta licencia es la licencia pública general GNU (GPL) que permite a los usuarios modificar componentes de software de uso libre para crear una nueva obra y distribuirla. Aun así, la GPL también exige a los autores de obras derivadas que publiquen todo su código fuente y permitan a los usuarios del código derivado modificarlo.
Por ejemplo, el software de edición de audio digital de software libre Audacity tiene una licencia GPL. La empresa que ofrece este software permite a los usuarios el derecho a copiar, distribuir, modificar y revender el código fuente original de Audacity. Con este derecho, sin embargo, la licencia copyleft de Audacity también requiere que los usuarios ofrezcan todo su código fuente bajo la GPL.
3. Licencia pública menor (LPGL)
La licencia pública general menor (LPGL) de GNU's Not Unix (GNU) es un tipo de licencia publicada por la Fundación de Software Libre (FSF). La LPGL, una rama de la licencia pública general (GPL), permite a los desarrolladores enlazar bibliotecas de código abierto dentro del código de su propio software sin adherirse a los términos señalados por una licencia copyleft que normalmente requieren que los desarrolladores liberen el código fuente utilizado para crear sus propios componentes. Los desarrolladores pueden licenciar el código resultante de esta actividad bajo cualquier tipo de licencia, incluida la propietaria, siempre que enlacen los proyectos con una biblioteca LGPL.
Los desarrolladores que modifican un componente de la LGPL deben hacer que la nueva versión esté disponible para su uso bajo la misma LGPL, lo que diferencia a esta licencia de la GPL. Por ejemplo, Linux es un tipo de sistema operativo (SO) de código abierto GPL que los desarrolladores han distribuido para que los usuarios' lo modifiquen y redistribuyan. El código fuente de Linux puede ser modificado y distribuido tanto comercialmente como no comercialmente por cualquier usuario, pero la GPL exige a los creadores de obras derivadas que ofrezcan todo su código fuente para uso libre. La LPGL, en cambio, no exige esta estipulación y sólo requiere que los desarrolladores publiquen la versión modificada de un componente de la LPGL.
4. Licencia permisiva
Una licencia permisiva, comúnmente conocida como licencia estilo Apache o estilo Berkeley Software Distribution (BDS), ofrece a los usuarios un acuerdo con pocos requisitos sobre cómo pueden modificar, redistribuir y utilizar el software. Las licencias permisivas son similares a las de dominio público, pero son ligeramente más restrictivas, ya que pueden contener algunas estipulaciones relativas a la protección de la propiedad intelectual. Los desarrolladores de software libre suelen utilizar licencias permisivas para mantener su propiedad intelectual y controlar la forma en que los usuarios utilizan el software. Por ello, las licencias permisivas son una alternativa común para los desarrolladores de FOSS que quieren apoyar el desarrollo de código abierto y al mismo tiempo mantener la protección de los derechos de autor.
Por ejemplo, la licencia Apache 2.0 es un tipo de licencia permisiva desarrollada por la Apache Software Foundation. Esta licencia permite a los usuarios y a las organizaciones operar, reproducir y modificar los productos de software desarrollados originalmente por Apache. Aunque la Licencia Apache 2.0 permite un alto nivel de libertad y desarrollo de código abierto, la advertencia de esta licencia es que los usuarios deben seguir cumpliendo con los requisitos especificados contra la redistribución del software y el recurso legal por infracción de patentes.
Relacionado: ¿Qué son las aplicaciones?
5. Licencia de propiedad
Las licencias propietarias son el tipo de licencia de software más restrictivo que existe. La mayoría de las licencias propietarias se reservan todos los derechos de un desarrollador o editor al lanzar el software. Normalmente, las licencias propietarias dictan que los usuarios no pueden modificar o redistribuir el software o su código. El factor más significativo de una licencia propietaria es que su EULA es obligatorio para su uso. Esto significa que los usuarios finales deben aceptar el acuerdo EULA de un software con licencia privativa si quieren utilizarlo. Si los usuarios se niegan a aceptar el EULA, es posible que no puedan utilizar el software en absoluto.
Por ejemplo, Microsoft Windows es un software con una licencia propietaria. La licencia de los productos de Microsoft restringe a los usuarios la ingeniería inversa, la distribución del software a múltiples usuarios y la publicación de pruebas de referencia, entre otras acciones. Si los usuarios rechazan el EULA que estipula estas restricciones, no podrán utilizar los productos de Microsoft.
Relacionado: 11 de los lenguajes de codificación más demandados
6. Licencia de secreto comercial
El término secreto comercial se refiere a los programas informáticos que no se distribuyen, no tienen licencia y son privados. Las leyes de propiedad intelectual y derechos de autor suelen proteger los secretos comerciales, ya que poseen un valor económico inherente. Por ejemplo, los programas de computación en la nube del lado del servidor, el software forense y otras aplicaciones relacionadas con la empresa pueden considerarse secretos comerciales, especialmente si son confidenciales.
En algunos casos, el estatus de secreto comercial se aplica a los programas informáticos distribuidos, sin licencia y sin dominio público, protegidos por los términos de los derechos de autor hasta que dichos términos expiren. Por ejemplo, las fugas de software que los usuarios publican en repositorios sin una licencia específica suelen ser inutilizables, ya que las protecciones generales de derechos de autor pueden restringirlas.
7. Marcas blancas
La marca blanca es un método de concesión de licencias en el que los desarrolladores, editores o empresas de software conceden a los usuarios la capacidad de vender o distribuir software bajo una marca de segunda parte. Las marcas blancas permiten que los desarrolladores mantengan la propiedad del software mientras una empresa de segunda parte lo rebautiza para su reventa comercial.
Por ejemplo, un desarrollador de un software de automatización de marketing puede ofrecer una versión de marca blanca de su producto a una agencia que luego añade su propia marca y reempaqueta el software para venderlo a su propio precio. A partir de aquí, las pequeñas empresas y los usuarios pueden comprar el software de marca blanca a la agencia, que obtiene así un beneficio. Hay varias opciones de software de marca blanca disponibles para las empresas que quieren vender productos de marca nueva, pero estas empresas suelen intentar mantener la confidencialidad de los acuerdos de marca blanca frente a los usuarios finales para mantener la rentabilidad.