Licencias de código abierto: una introducción para principiantes

El código abierto es una de las innovaciones más influyentes en el mundo de la tecnología. Sin embargo, el concepto de software libre y de código abierto (FOSS, por sus siglas en inglés) suele generar confusión, especialmente entre quienes se inician en el desarrollo de software. Comprender qué significa exactamente que un software sea «abierto» y qué implicaciones tiene su uso requiere conocer algunos conceptos clave como la propiedad intelectual, los derechos de autor y las licencias de software.

Propiedad intelectual y derechos de autor en el software

La propiedad intelectual se refiere al derecho de un creador sobre una obra intangible, como una canción, un libro o un programa informático. En el caso del software, el derecho de autor (copyright) protege automáticamente el código en el momento en que es creado, otorgando al autor el control exclusivo sobre su copia, modificación y distribución.

Por ejemplo, si un desarrollador escribe un código para una aplicación, este código le pertenece legalmente y solo él puede decidir qué hacer con él. Sin embargo, el desarrollador puede permitir que otros usen, modifiquen y distribuyan su software estableciendo una licencia específica.

¿Qué es una licencia de software?

Una licencia de software es un documento legal que especifica cómo puede ser usado, modificado y distribuido un software. En el ámbito del código abierto, las licencias desempeñan un papel fundamental, ya que establecen los términos bajo los cuales un software puede ser compartido.

Cuando un desarrollador publica un software con una licencia de código abierto, permite a otros programadores acceder a su código fuente y, dependiendo de la licencia, modificarlo y redistribuirlo.

¿Qué significa «código abierto»?

El término «código abierto» (open source) se refiere a software cuyo código fuente es accesible al público y que puede ser modificado y redistribuido bajo ciertas condiciones. Sin embargo, para que un software sea considerado oficialmente de código abierto, debe cumplir con una serie de criterios definidos por la Open Source Initiative (OSI), entre los que destacan:

  • Acceso al código fuente: Cualquier usuario debe poder inspeccionar y modificar el código.
  • Libertad para redistribuir: No debe haber restricciones sobre la distribución del software modificado o sin modificar.
  • Neutralidad en el uso: No puede haber limitaciones sobre cómo o para qué se utiliza el software.

La OSI también mantiene una lista de licencias aprobadas que cumplen con estos criterios.

Diferencias entre código abierto y software propietario

Para comprender mejor qué significa el código abierto, es útil contrastarlo con otras formas de distribución de software:

Software propietario

El software propietario es aquel cuyo código fuente no está disponible para el público y está sujeto a restricciones estrictas de uso y distribución. Ejemplos de software propietario incluyen Microsoft Office y Adobe Photoshop, los cuales requieren licencias comerciales para su uso.

Freeware

El freeware es software que se distribuye de forma gratuita, pero sin acceso al código fuente. Un ejemplo sería Spotify en su versión gratuita.

Software «source-available»

Algunos desarrolladores publican su código fuente sin una licencia de código abierto. Esto significa que el código puede ser visible, pero no necesariamente puede ser modificado o redistribuido libremente. Un ejemplo es el motor gráfico Unreal Engine.

Licencias de código abierto: copyleft vs. permisivas

Las licencias de código abierto se dividen en dos grandes categorías:

Licencias copyleft

Las licencias copyleft garantizan que cualquier software derivado de un código original también debe ser distribuido con la misma licencia. Es decir, los desarrolladores que modifiquen el código deben compartir sus modificaciones bajo los mismos términos.

Ejemplo:

  • GPL (GNU General Public License): Es una de las licencias copyleft más estrictas. Obliga a que cualquier software derivado también sea de código abierto.

Licencias permisivas

Las licencias permisivas otorgan a los usuarios más libertad, permitiéndoles modificar y redistribuir el software con menos restricciones.

Ejemplo:

  • MIT License: Permite a los desarrolladores usar el código para cualquier propósito, incluyendo su integración en software propietario.

La principal diferencia entre ambas categorías es que mientras las licencias copyleft buscan proteger la filosofía del software libre, las licencias permisivas permiten mayor flexibilidad para su uso comercial.

La importancia de las CLAs en proyectos de código abierto

Un Acuerdo de Licencia para Contribuyentes (CLA, por sus siglas en inglés) es un documento que regula la relación entre los desarrolladores que contribuyen a un proyecto de código abierto y los mantenedores del proyecto.

Sin un CLA, cualquier código aportado por un colaborador seguiría siendo propiedad intelectual del autor original, lo que podría generar conflictos legales en el futuro. Un CLA garantiza que los creadores del proyecto pueden utilizar las contribuciones libremente y en futuras versiones.

Sin embargo, los CLAs también generan debate dentro de la comunidad del software libre, ya que algunos argumentan que pueden dificultar las contribuciones y restringir la verdadera apertura de un proyecto.

Código abierto vs. software libre: una cuestión filosófica

Aunque a menudo se usan indistintamente, los términos «código abierto» y «software libre» tienen diferencias significativas.

  • El código abierto pone énfasis en los beneficios prácticos de compartir código, como la colaboración y la eficiencia en el desarrollo.
  • El software libre, promovido por el movimiento GNU, se basa en la idea de que el software debe respetar la libertad de los usuarios.

El software libre se basa en cuatro libertades esenciales, según la Free Software Foundation:

  1. Libertad de ejecutar el programa para cualquier propósito.
  2. Libertad de estudiar y modificar el código fuente.
  3. Libertad de redistribuir copias del programa.
  4. Libertad de distribuir versiones modificadas.

La diferencia clave entre ambos conceptos es que el software libre se centra en la ética y los derechos del usuario, mientras que el código abierto se enfoca en la viabilidad técnica y económica.

Conclusión

Las licencias de código abierto son fundamentales para la innovación y la colaboración en el mundo del software. Entender su funcionamiento permite a los desarrolladores elegir la licencia adecuada para sus proyectos y contribuir de manera efectiva a la comunidad del software libre.

Desde las estrictas reglas de la GPL hasta la flexibilidad de la MIT License, cada licencia tiene sus ventajas y desafíos. La decisión entre una licencia copyleft o permisiva depende de los objetivos del proyecto y del nivel de control que se desee mantener sobre su distribución.

El código abierto no solo ha impulsado el desarrollo tecnológico, sino que también ha fomentado una cultura de transparencia y colaboración que sigue marcando el futuro del software.

vía: Ubuntu blog

Scroll al inicio