lunes, 25 de enero de 2016

¿Software libre o Software abierto?


En estos días me encontré con este artículo de Adrián Perales, disgustado (en mayor o menor medida) por el uso de la frase "Open Source" para referirse al software libre en donde veo que para él ambos términos son sinónimos.

Sin embargo, para mi el Software Libre y el Software Abierto (Open Source en inglés) son dos cosas que, si bien se parece, son diferentes y se fundamentan en dos tendencias interesantes para proteger la libertad cuya base filosófica es radicalmente distinta.

Software Libre


Aquellos que utilizan el término Software Libre deben estar refiriéndose a todo programa protegido por una licencia GPL en la forma como la Fundación para el Software Libre la concibió:

"El software libre es una cuestión de libertad, no de precio. Para entender el concepto, debe pensarse en «libre» como en «libertad de expresión», no como en «cerveza gratis».

Más precisamente, software libre significa que los usuarios de un programa tienen las cuatro libertades esenciales:
  • La libertad de ejecutar el programa como lo desee, con cualquier propósito (libertad 0).
  • La libertad de estudiar el funcionamiento del programa y adaptarlo a sus necesidades (libertad 1). El acceso al código fuente es un prerrequisito para esto.
  • La libertad de redistribuir copias para ayudar a los demás (libertad 2).
  • La libertad de mejorar el programa y de publicar las mejoras, de modo que toda la comunidad se beneficie (libertad 3). El acceso al código fuente es un prerrequisito para esto."

OpenSource


Por otro lado el término Open Source se debe utilizar para referirse a todo programa que se encuentre protegido por una licencia que siga los lineamientos de la Open Source Initiative. Esta iniciativa nace a partir de la necesidad de algunos desarrolladores de proteger su software en una forma diferente a la planteada por GNU cuya principal licencia (la GPL) exige que si el código fuente del software se utiliza embebido en otro software, el software resultado de este proceso debe protegerse con la misma licencia GPL.

La Iniciativa Open Source plantea una serie de requisitos que deben cumplir las licencias para proteger un software ajustándose al estándar del software Open Source, las cuales indican que una licencia de Software Abierto.

Una licencia ajustada a este estándar debe cumplir con lo siguiente:
  1. Distribución Libre: no debe haber restricción a la redistribución
  2. Código fuente: debe acompañarse con el código fuente.
  3. Trabajos derivados: El software debe permitir que se deriven trabajos del software original sin restricción.
  4. Integridad del código fuente del autor: Al distribuirse debe mantenerse el código originalmente escrito y describirse las modificaciones que se han realizado.
  5. No discriminar personas ni grupos.
  6. No discriminar campos de aplicación.
  7. La licencia debe acompañar la distribución.
  8. No debe amarrarse la licencia a la adquisición de otro producto.
  9. No debe restringir el uso de otro software.
  10. Debe ser tecnológicamente neutral.
El punto 3, en particular, es compatible con la licencia LGPL (lesser General Public Licence) pero no con la GPL, la cual exige que todo trabajo derivado debe distribuirse con la misma licencia del programa original.

Para qué existen dos cosas tan parecidas


Existen para atender necesidades particulares de distintas organizaciones, corporaciones o desarrolladores quienes requieren proteger su software de formas diferentes.

Dos grandes sistemas operativos son evidencia de la diferencia entre los dos: Linus Torvalds protegió el kernel de Linux con la GPL y gracias a ello en los últimos 25 años se ha consolidado como el mejor sistema operativo que existe actualmente.  Sin embargo, también existen unos sistemas operativos llamados FreeBSD, Nextstep y OpenBSD, protegidos con la licencia BSD de la universidad de Berkeley y con base en estos tres sistemas operativos Apple generó MacOS-X, el cual es un software privativo bastante exitoso.

La gran controversia


La fundación GNU advierte sobre problemas que pueden suceder al proteger un software con la licencia BSD. Sin embargo los defensores del Open Source resaltan que existe una interesante sinergia pues cuando un software privativo como MacOS-X va creciendo, a pesar de ser privativo, se genera también crecimiento en sus sistemas operativos originales puesto que el constructor del software privativo no va a matar la gallina de los huevos de oro y va a compartir parte del crecimiento con el software original.

Por el otro lado los defensores del Open Source indican que el Software Libre es "un tipo especial de software abierto".

Para mi son dos cosas distintas, cada una atiende necesidades diferentes y tienen objetivos diferentes. ¡Que viva la libertad y la diversidad!

8 comentarios:

  1. Ahondando en el tema, encontré varios textos en la página de gnu.org donde se especifica que la licencia GPL exige que si se van a publicar o compartir modificaciones a software libre, la licencia con la que debe proteger las modificaciones, obligatoriamente, debe ser compatible con la GPL:

    https://www.gnu.org/philosophy/free-sw.html
    https://www.gnu.org/licenses/license-list.es.html#MPL-2.0
    https://www.gnu.org/licenses/license-recommendations.html#contributing
    https://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL
    https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

    ResponderEliminar
  2. Para ser más precisos la GPL está listada en https://opensource.org/licenses , de tal forma que las licencias de software libre son un subconjunto de las licencias opensource

    ResponderEliminar
    Respuestas
    1. Las licencias de software libre no son un subconjunto de las de código abierto. Tanto la definición de "software libre" como la definición de "código abierto" son compatibles con múltiples licencias y la GPL es una de ellas. De hecho, casi siempre coinciden las licencias que la FSF considera de software libre con las que la OSI considera de código abierto, y viceversa. Vuelvo a remitir al mismo artículo de la FSFE que ya he citado en mi otro comentario: https://fsfe.org/freesoftware/comparison.es.html

      Eliminar
  3. Me ha gustado mucho tu exposición, muy didáctica :-) Sin embargo, creo que la distinción que haces tiene más que ver con la diferencia entre licencias de software libre protectoras (copyleft) y no protectoras (no copyleft), que con la diferencia entre software libre y código abierto. En la práctica, casi siempre coinciden las licencias que tanto la FSF como la OSI consideran como de software libre o de código abierto. La diferencia está, creo yo, en la filosofía y en el enfoque, más que en las licencias en sí. El concepto de software libre hace más hincapié en la libertad y en los derechos de los usuarios, como herramienta para construir una sociedad más justa, mientras que el concepto de código abierto hace más hincapié en la accesibilidad del código y en las ventajas técnicas que supone para el desarrollo del software, especialmente a nivel empresarial. Creo que te resultará interesante echar un vistazo al artículo que la FSFE dedica a explicar esta diferencia: https://fsfe.org/freesoftware/comparison.es.html

    ResponderEliminar
  4. Por cierto, el punto 3 de la Definición de Código Abierto de la OSI es perfectamente compatible con la libertad 3 de la Definición de Software Libre. La definición de software libre no exige que los trabajos derivados se publiquen con la misma licencia. Esa es una exigencia de la GPL y del concepto de copyleft, pero no del concepto de software libre. No sé si me explico ;-)

    ResponderEliminar
  5. El profesor Ulises Hernández de Popayán me hace el siguiente comentario:
    Mientras el Software Libre tiene una postura más específica, 4 libertades y por tanto se concreta en 2 licencias GPL y LGPL... el Software de Código Abierto es más una postura de tener acceso al código fuente, y por tanto hay una mayor diversidad de licencias, desde las que son aún más abiertas que la GPL (el software derivado se puede licenciar con todos los derechos reservados), hasta las más cerradas en las cuales son casi como el Software Privativo, sólo que dejan ver el código.

    ResponderEliminar
  6. Un enlace interesante es:
    https://es.wikipedia.org/wiki/Licencia_de_software_libre#Tipos_de_licencia

    ResponderEliminar
  7. Sigo diciendo que no deben confundirse las licencias con la definición de software libre/código abierto. Las licencias que encajan en ambas definiciones son básicamente las mismas. Y no es cierto que las únicas licencias en que se concreta el software libre sean la GPL y la LGPL. Aquí se explica perfectamente: https://fsfe.org/freesoftware/comparison.es.html

    ResponderEliminar