Free Software vs Open Source

Pareciera que cuando uno lee Software Libre (o Free Software) y Código Abierto (u Open Source) fueran sinónimos pero en realidad tienen algunas diferencias entre si, que si bien pequeñas no dejan de ser significativas.

Tampoco quiere decir que el software libre necesariamente tenga que ser “gratis” sino que muchas veces no es tan gratis ni tan libre.

Aquí vamos intentar mostrar los distintos conceptos sobre software libre, opensource y otras corrientes libres sobre el manejo del software y la forma de distribuirlo, modificarlo y utilizarlo por parte de los usuarios.

Software Libre

De acuerdo a la definición de la Free Software Foundation, el Software Libre es software que le da la libertad al usuario de estudiarlo, modificarlo y compartirlo ya que considera al usuario Libre. El “Free” o el “Libre” de la definición del Software Libre, segun la FSF, tiene que ver mas con la “libertad” de uso y no del “precio” del software. O sea, no hay que confundir el término “Free” como que tiene que ser obligatoriamente “Gratis”, por eso no hay que asociar el “Software Libre” con “Software Gratuito” ya que algunas veces no es lo mismo.

La Free Software Foundation fue fundada por Richard Stallman alla por 1984. En esos años Stallman trabajaba en un laboratorio donde recibieron como donación, de una empresa externa, una impresora y era utilizada en red por los que trabajaban alli. Pero como la impresora sufria de atascamientos constantes Stallman decidió solucionar el problema e intentó hacer un sistema de envio de señales para saber cuando el papel se atascaba en la impresora o cualquier otro error. Para ello necesitaba el software del driver de la impresora y fue a pedirles el código fuente de los controladores a la empresa que fabricaba la impresora y le comentó lo que queria hacer, pero la empresa se negó.

Richard Stallman
Richard Stallman

En los años 70 todavia el boom de la informática no se habia desatado y generalmente se daba en el ámbito universitario. Ya para los 80 la cosa cambió un poco, existia más software privativo con restricciones de desarrollo y si se encontraba algún error en el código solamente se podia notificar a la empresa dueña del software.

En este contexto y a partir del problema que tuvo con la impresora, Stallman, comenzó a trabajar en el proyecto GNU (para desarrollar un sistema operativo “Unix-Like” totalmente libre) para luego fundar la Free Software Fundation. Él introdujo la definición de Software Libre y el concepto de “CopyLeft” (algo parecido al copyrigth pero al reves) que él mismo desarrollo para darle más libertad a los usuarios y menos chances de la apropiación del software.

Cuando hablamos de Software Libre está implícito la garantía de las siguientes cuatro libertades:

  • Libertad 0: Libertad de usar el programa, con cualquier propósito.
  • Libertad 1: Libertad de estudiar como funciona el programa, modificarlo y adaptarlo a nuestras necesidades.
  • Libertad 2: Libertad de distribuir copias del programa con lo cual puedes ayudar a tu prójimo.
  • Libertad 3: Libertad de mejorar el programa y hacer públicas esas mejoras a los demas, de modo que toda la comunidad se beneficie.

La libertad 0 implica que el usuario puede usar el software de cualquier manera que lo desee.

La libertad 1 nos da la posibilidad de poder ver el codigo fuente, estudiarlo, ver su funcionamiento y saber como hace lo que hace, además de poder adaptarlo a nuestras necesidades particulares.

La libertad 2 nos da la libertad de distribuir este software sea por el medio que sea y con o sin costo (generalmente cuando es con costo es el costo de la distribución, no un costo por “comprar” el software).

La libertad 3 nos da la posibilidad de ver de como mejorar el software para el beneficio de la comunidad y estas modificaciones exponerlas a la comunidad para que otro las pueda estudiar y tal vez mejorarlas. Las libertades 1 y 3 requieren el código fuente.

Dado que no siempre el software libre tiene que ser gratis, se puede hablar de “software libre de uso” si por lo menos cumple con 2 libertades de las antes mencionadas, la 0 y la 2, aunque no cumpla con todas las libertades antes expuestas para poder ser catalogado como “libre”.

Mapa Conceptual del Software Libre
Mapa Conceptual del Software Libre

Open Source

El Código abierto (u Open Source) tiene un punto de vista mas orientado a los beneficios prácticos de compartir código que a cuestiones morales y/o filosóficas a las que apunta el Software Libre.

Open Source

El concepto de Código abierto nació en el año 1998 para poder utilizarlo como reemplazo, en aquellos años, al ambiguo nombre del Software Libre. Como se dijo anteriormente el término “Free” significa distintas cosas dependiendo el contexto en donde se lo emplee. Puede ser libre de uso pero no gratuito o puede ser gratuito y libre de uso.

Mas que nada el término “Codigo Abierto” se refiere a la posibilidad de ver el código fuente del programa. Pero el concepto va mas alla de el simple hecho de ver el código sino que la idea de que todos puedan ver el código fuente es que este evolucione, mejore y se desarrolle segun las necesidades de los usuarios. Se corrigen los errores de manera mucho mas rápida que si lo hiciera una empresa con software privativo y por ende una producción de software mejor.

Como en Software Libre, el Código abierto también tiene una serie de requisitos que cumplir para poder ser considerado Código abierto:

  • Libre redistribución: el software debe poder ser regalado o vendido libremente.
  • Código fuente: el código fuente debe estar incluido u obtenerse libremente.
  • Trabajos derivados: la redistribución de modificaciones debe estar permitida.
  • Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
  • Sin discriminación de personas o grupos: nadie puede dejarse fuera.
  • Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
  • Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa
  • La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor.
  • La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
  • La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.

FOSS

FOSS o Free and Open Source Software es la sigla que define al software libre y de código abierto sin hacer incapié en las diferencias entre estas 2 definiciones. Tambien se lo puede encontrar como FLOSS que significa Free/Libre/Open Source Software.

Mapa conceptual de un FLOSS
Mapa conceptual de un FLOSS

Métodos de licenciamiento

Segun la definición encontrada en Wikipedia:

“Una licencia de software es un contrato entre el licenciante (autor, dueño de los derechos) y el licenciatario (usuario, empresa que usa el software) para utilizar el software cumpliendo una serie de clausulas y condiciones establecidas en la licencia.

Las licencias de software pueden establecer entre otras cosas: la cesión de determinados derechos del propietario al usuario final sobre una o varias copias del programa informático, los límites en la responsabilidad por fallos, el plazo de cesión de los derechos, el ámbito geográfico de validez del contrato e incluso pueden establecer determinados compromisos del usuario final hacia el propietario, tales como la no cesión del programa a terceros o la no reinstalación del programa en equipos distintos al que se instaló originalmente.”

Ahora bien, dentro de lo que es el software libre y el open source, existen distintos tipos de licencias o licenciamientos que lo que hacen es preservar al usuario para el libre uso del software bajo ellas.

Existen varios tipos de licencias en lo que respecta al software libre, entre ellas estan la BSD, GPL, Apache, ZLib, MPL (Mozilla) entre las más conocidas. La licencia GPL es la que impulsa la Free Software Fundation basada en la licencia Copyleft. Bajo el contexto de esta licencia si un programa es distribuido y modificado esas modificaciones también tienen que estar bajo GPL y además el codigo fuente de este programa gajo licencia GPL no puede ser utilizado en otro programa con licencia incompatible a esta.

Otra forma de licenciamiento es la de “Dominio Público”. Este método de licenciamiento no tiene proteccion alguna de derechos de autor, por ende, cualquiera que se descargue el código fuente y lo modifique tendria la posibilidad de hacer privativo ese software con las modificaciones. El término dominio público mas que un término para nombrar a una licencia es un término legal que significa “sin derechos de autor”. Se podria dar el caso de que el ejecutable de este programa este bajo la licencia de domino público pero sus fuentes no (algo asi como un freeware) pero este no puede ser considerado software libre.

Diagrama de licencias

Este diagrama nos muestra los distintos tipos de licenciamiento (sin caer en la licencia especifica) y como se relacionan entre si.

A la izquierda de la imgen vemos las licencias del tipo abiertas y/o de dominio público como ser la GPL, Copyleft o misma la de Open Source o Codigo Abierto y a la derecha las licencias del tipo privativas, cerradas o sharewares.

Hay un conjunto que engloba a unos tipos de licencias con las otras que es la descarga gratuita. Muchas veces se puede descargar gratuitamente un programa pero no se pueden descargar los fuentes pero si se puede usar libremente, es ahi donde entra la licencia Freeware donde este puede ser descargado y el programador no cobra licencia pero el codigo fuente no esta disponible para ser descargado, aunque no tiene una definicion en concreto. Distinto es la licencia Shareware donde el usuario tiene que pagar por la licencia a pesar de tener la posibilidad utilizarlo.

Copyleft

Copyleft

Si hiciera un programa y quisiera compartirlo con todos bastaria con que lo ponga en dominio público para que todo el mundo que lo quiera y/o lo necesite lo descargue y también descargue sus fuentes para adaptarlo a lo que necesiten pero, como antes se describió, esta forma de licenciamiento tiene el problema de que no tiene protección alguna de derechos de autor, por lo tanto, cualquiera que descargue las fuentes del programa y lo modifique podria poner ese programa modificado bajo una licencia privativa. Para salvar esto es donde entra la licencia Copyleft.

La licencia Copyleft le permite a cualquiera que distribuya el programa con o sin cambios tiene que dar la libertad al usuario de poder volverlo a distribuir y/o modificarlo aún mas. El Copyleft garatiza al usuario la libertad de utilizar como quiera el sofware.

Según la explicación que se da del Copyleft en la página de GNU:

“Para cubrir un programa con `copyleft’, primero reservamos los derechos; luego añadimos términos de distribución, los cuales son un instrumento legal que le dan a todo el mundo los derechos a utilizar, modificar, y redistribuir el código del programa o cualquier programa derivado del mismo, pero solo si los términos de distribución no son cambiados. Así, el código y las libertades se hacen legalmente inseparables.”

El Copyleft le asegura al usuario la libertad de poder utilizar el programa como desee a diferencia del copyright que no garantiza la libertad de los derechos del usuario sobre el programa sino que el licenciante se reserva los derechos de hacer lo que quiera con el, ya sea cobrar por el, no dar el código fuente, etc.

Conclusión

Ya tuvimos un pantallazo general de la filosofia sobre el Software Libre y la practicidad a la que apunta el Open Source. En lo escrito antes se muestra como es que a pesar de parecer dos cosas totalmente distintas tienen muchas similitudes.

El Linux (como mayor exponente en lo que es el Software libre y el open source) no solo generó una revolución tecnológica sino que también una revolución filosofica dentro de la informática.

Gracias a todas estas personas que trabajaron y trabajan aportando sus conocimientos, ideas y esfuerzos de programación hacen que, tanto el sofware libre y el open source, la comunidad “libre” crezca cada dia mas y haya cada vez mucha mas gente participando y abriendo su cabeza a las nuevas ideas.

Fuentes: