search El medio de comunicación que reinventa la empresa

¿Qué es una licencia de código abierto? Definición y tipos de licencia

¿Qué es una licencia de código abierto? Definición y tipos de licencia

Por Maëlys De Santis

El 28 de octubre de 2024

¿Qué es una licencia de código abierto? Estas licencias, también conocidas como licencias de código abierto, rigen el uso del software de código abierto. El código fuente de estos programas puede reutilizarse y las versiones modificadas pueden redistribuirse bajo ciertas condiciones.

¿GNU GPL, MIT, Apache, con o sin copyleft ? ¿Cómo elegir una licencia? Repasamos las licencias de código abierto más utilizadas para ayudar a los desarrolladores a elegir la que mejor se adapta a su proyecto.

Licencias de código abierto: definición

¿Qué es una licencia de código abierto?

Una licencia de código abierto es una licencia de software cuyo código fuente es "abierto". En otras palabras, el código se pone a disposición del público en general y puede compartirse y modificarse. También se denomina software libre o licencia libre.

Este tipo de licencia no elimina en absoluto los derechos de autor sobre la misma; simplemente, el autor concede a los usuarios el derecho a utilizar la licencia y explotar su obra.

La Iniciativa de Código Abierto es una organización que promueve el uso de software de código abierto en todo el mundo.

©️ guidecms.com

¿Por qué apostar por el código abierto?

La idea original era ofrecer una alternativa a las licencias propietarias protegidas por derechos de autor. Estos derechos son propiedad de una empresa o de un programador.

Hoy en día, el código abierto se basa en una comunidad sólida.

©️ Anybox

¿Cuáles son los cuatro criterios que definen el software libre?

Se puede decir que un software es libre si ofrece las siguientes libertades

  • libertad para utilizar el software,
  • libertad de modificar el software para satisfacer necesidades específicas,
  • libertad para copiar y compartir el software,
  • libertad para modificar el software y compartir las versiones modificadas.

¿Cuál es la diferencia entre software libre y software de código abierto?

En inglés, el término "free software" es ambiguo en el sentido de que "free" significa tanto "libre" como "gratuito". Es este doble significado el que ha llevado a la comunidad de desarrolladores a establecer una distinción entre software libre y software de código abierto.

La expresión "código abierto" fue propuesta en 1998 por Christine Peterson para transmitir con palabras esta realidad. El objetivo es recordar a la gente que el software tiene un coste.

El software de código abierto, como el software libre, no es software gratuito. Requiere recursos, ya sean humanos, financieros o materiales, para :

  • desarrollar el software
  • modificarlo y adaptarlo a las necesidades de una empresa u organización,
  • mantenerlo actualizado
  • resolver problemas en ausencia de soporte
  • alojarlo en servidores.

Todo esto tiene un coste: no hay que confundir el software de código abierto con el software libre, aunque los usuarios puedan tener acceso al código fuente.

Los distintos tipos de licencia de código abierto

Existen cientos de licencias de código abierto diferentes. Algunas son compatibles entre sí, otras no. Si son compatibles, significa que es posible fusionar código de distintos programas.

Veamos los tipos de licencia más comunes para que te hagas una idea.

Copyleft

Copyleft se traduce al francés como "gauche d'auteur", en referencia al copyright. Es el permiso del autor para "utilizar, estudiar, modificar y distribuir su obra", ya sea un texto, una obra de arte o un programa informático.

Esto significa que el usuario de una obra con copyleft puede modificarla, reutilizarla y distribuirla, pero está obligado a respetar las mismas libertades que se aplican a la obra original. En otras palabras, si un desarrollador desea modificar un programa informático y compartirlo de nuevo, el programa modificado estará necesariamente sujeto al copyleft.

No es posible distribuir software con licencia copyleft bajo una licencia propietaria.

©️ Wikipedia

Existen varios niveles de copyleft

  • copyleft estricto: el software, modificado o no, y sus componentes sólo pueden redistribuirse bajo la licencia original;
  • copyleft estándar o bajo: el software, modificado o no, sólo puede redistribuirse bajo la licencia inicial, pero pueden añadirse nuevos componentes y redistribuirse bajo otra licencia, o incluso bajo una licencia propietaria.

Las licencias copyleft más conocidas son las siguientes:

  • MPL,
  • DSL,
  • ODbL,
  • GFDL,
  • GNU,
  • OLD,
  • SIL Open Font License,
  • CC-BY-SA,
  • CeCILL,
  • licencia de arte libre.

Licencias públicas generales GPL o GNU GPL

Son las licencias de software libre más utilizadas: más de la mitad del software libre que se distribuye actualmente está licenciado bajo la GPL de GNU.

Las licencias GPL (General Public License ) son recomendables si desea que su código sea accesible y reutilizable por el mayor número de personas posible. Se benefician de un copyleft fuerte.

Existen varias versiones: GPL 2, GPL 3, siendo esta última la más completa, ya que trata en particular el problema de la tivoización ("la creación de un sistema que incluye software libre, pero que utiliza hardware electrónico para prohibir a los usuarios ejecutar versiones modificadas en él" según Wikipedia).

Existen licencias derivadas de la GPL, también elaboradas por la Free Software Foundation:

  • la LGPL, Lesser General Public License: esta licencia deriva de la GPL de GNU y pretende ser menos restrictiva con el software propietario. Suele aplicarse a las bibliotecas.
  • la licencia AGPL, o GPL Affero, deriva de la versión 3 de la GPL de GNU. Tiene un requisito: "si ejecuta un programa modificado en un servidor y permite que otros usuarios se comuniquen con él, su servidor también debe permitirles descargar el código fuente de la versión modificada en ejecución" (fuente: gnu.org).

La licencia MIT

Esta licencia toma su nombre del Instituto Tecnológico de Massachusetts, MIT. El término es engañoso porque, en realidad, el MIT utiliza varias licencias.

La licencia MIT es muy permisiva, con pocas restricciones a la reutilización del código y sin copyleft. Es compatible con un gran número de licencias, incluida la GPL de GNU.

Incluye varios modelos de licencia, en particular la licencia Expat y la licencia X11.

La licencia MIT es similar en muchos aspectos a la nueva licencia BSD.

La licencia BSD

La licencia BSD es una licencia de código abierto permisiva, sin copyleft y compatible con la GPL de GNU.

Se recomienda no utilizar la versión original debido a una cláusula publicitaria restrictiva: el aviso de copyright es obligatorio en toda la publicidad o documentos suministrados con el software. La nueva versión de la licencia BSD ya no contiene esta cláusula.

Entre las licencias BSD más populares se encuentra la licencia Apache. Se trata de una licencia permisiva, compatible con la GNU GPL v3, pero no con la v2. Se recomienda utilizar la licencia Apache 2. 0 para los grandes programas, en particular para evitar los escollos asociados a las patentes.

Tabla de las distintas licencias de código abierto

Tipos de software de código abierto
Nombre de la licencia Copyleft Compatibilidad GNU GPL
GNU, GNU GPL
MIT No
BSD No
Apache No Sí con GNU GPL v3

El software de código abierto más popular

He aquí algunos ejemplos de software de código abierto por categoría:

  • Framework: Angular (MIT),
  • FTP/cliente de transferencia de archivos: FileZilla (GNU GPL),
  • CMS: Drupal (GNU),
  • CRM: SuiteCRM (AGPL),
  • Gestión de bases de datos: mySQL (GNU),
  • Editor de texto: Notepad2 (GNU),
  • ERP: Odoo (GNU GPL),
  • Forja: GitLab (MIT),
  • Navegador web: Mozilla Firefox (GNU GPL),
  • Sistema operativo: Red Hat Enterprise Linux,
  • Servidor HTTP: Apache HTTP Server (Apache).

Consejos finales: ¿cómo elegir una licencia de código abierto?

  • ¿Es el copyleft un criterio obligatorio?
  • ¿Hasta qué punto quiere que su código sea reutilizable?
  • ¿Necesita una licencia que le permita trabajar en comunidad con otros desarrolladores?
  • ¿Necesita una licencia permisiva y, en caso afirmativo, cómo de permisiva debería ser?
  • ¿Necesita una gran comunidad de soporte?

Artículo traducido del francés