¿Qué es el software libre, y por qué es importante?
Contenido:
- Historia 1.2 Richard Stallman y el proyecto GNU 1.3 El Manifiesto GNU 1.4 Free Software Foundation
- ¿Qué es el Software Libre
- Las 4 Libertades Escenciales
- El Software Libre se puede vender
- Licencias
- Open Source Software
- Importancia del Software Libre
Historia:
En los años tempranos de la ingeniería informática, no era común hablar de “licencias de software” o derechos de autor. Esto en parte debido a las limitaciones de la época. El software era desarrollado para funcionar en la propia máquina donde era desarrollado, y su funcionalidad estaba contenida a unas pocas tareas básicas. Sin embargo, en años posteriores se crearon programas multi plataforma, la necesidad por las computadoras se extendió en entornos profesionales, militares, bancarios y empresariales, así como la demanda por ingenieros que desarrollen estos sistemas.
La costumbre entre desarrolladores de software en aquella época era la de compartir el código fuente, intercambiar ideas, aprender a punta del ensayo y error, y cuando alguien encontraba la solución a un problema, esta era compartida entre sus colegas.
Con el paso del tiempo, las compañías comenzaban a restringir las licencias de su software, y limitar las contribuciones a sus equipos selectos de desarrolladores, limitando así el acceso al código, o en otras palabras, “cerrandolo”. Esto se debía principalmente a la necesidad de proteger sus propiedades intelectuales, y evitar que la competencia les copie. Pero a la final, esto ha perjudicado en el largo plazo a los consumidores.
Para la década de 1980, empresas como Comodore, Apple, Microsoft, IBM, entre otras ya estaban establecidas entre el mundo de la computación para el hogar, muchas otras compañías ya distribuían su propio software a distintas plataformas, sin compartir el código, manteníendolo secreto, y además patentando el mismo para asegurarse que nadie pueda tener acceso, modificarlo, ni distribuirlo.
Richard Stallman y el proyecto GNU:
Un desarrollador y profesor del MIT llamado Richard Stallman, veía con preocupación la caída de algunas comunidades de desarrolladores donde el código se compartía libremente. Entonces, decidido a iniciar un movimiento en favor del “Software Libre” renuncia al MIT en enero de 1984, iniciando junto con otros colegas el desarrollo del sistema GNU.
El sistema GNU estaría basado parcialmente en el sistema operativo UNIX, gracial a lo cual, se lo considera un sistema operativo ”“UNIX-Like””, sin embargo también tiene tecnologías desarrolladas desde cero, así como incorpora otras tecnologías originalmente ajenas a UNIX.
Según el propio Richard Stallman:
Desarrollar un sistema completo es un proyecto muy grande. Para llevarlo a cabo, decidí adaptar y utilizar piezas de software libre existentes siempre que fuera posible. Por ejemplo, al principio decidí utilizar TeX como el principal formateador de texto; unos años más tarde, decidí utilizar el sistema X Window en lugar de escribir otro sistema de ventanas para GNU. Debido a estas decisiones, y otras similares, el sistema GNU no es lo mismo que la colección de todo el software de GNU. El sistema GNU incluye programas que no son software de GNU, programas que fueron desarrollados por otras personas y proyectos para sus propios fines, pero que podemos usar porque son software libre. ¹
Esta y muchas otras es la razón por la cual “GNU no es Unix” la cual es el literal significado de su acrónimo: “GNU is not UNIX”.
En septiempre de 1984 inició el desarrollo de GNU Emacs, un editor de textos multifunciones, el cual serviría como reemplazo a VI.
El manifiesto GNU:
En 1983 Richard Stallman redacta la primera versión del Manifiesto GNU, donde se establecen las bases fundamentales e ideológicas del proyecto. Luego sería publicado en 1985, y parcialmente actualizado en 1987.
El mismo puede leerse completo en el sitio web oficial del proyecto GNU.
A continuación les muestro un extracto del mismo:
Por qué debo escribir GNU
Considero que la Regla de Oro me exige que si me gusta un programa lo debo compartir con otras personas a quienes también les guste. Los vendedores de software quieren dividir a los usuarios y dominarlos para llevarlos a aceptar no compartir su software con los demás. Me rehúso a romper la solidaridad con otros usuarios de esta manera. Mi conciencia me impide firmar un acuerdo de confidencialidad o un acuerdo de licencia de software. Durante años trabajé en el Laboratorio de Inteligencia Artificial oponiéndome a estas tendencias y otras descortesías, pero al final fueron demasiado lejos: no podía permanecer en una institución donde tales cosas se hicieran en mi nombre en contra de mi voluntad.
Para poder seguir utilizando las computadoras sin deshonra, he decidido agrupar un conjunto suficiente de software libre para poder vivir sin usar ningún software que no sea libre. He renunciado al Laboratorio de Inteligencia Artificial para evitar que el MIT pueda usar alguna excusa legal que me impida distribuir software de GNU.
Free Software Foundation:
El 4 de Octubre de 1985 se funda la Free Software Foundtaion. Esta organización sin fines de lucro se encarga de el desarrollo de muchas aplicaciones, programas y tecnologías del proyecto GNU, así como administran las licencias libres de software denominadas “Copyleft” las cuales permiten la distribución libre de software.
También se encarga de crear documentación, materiales educativos, organizar eventos y promover el software libre. Todos los emplados de la fundación utilizan exclusivamente software validado por ellos mismos como software 100% libre.
¿Qué es el Software Libre?:
Para tener una definición más exacta, vamos a tomarlo directamente de la página de filosofía del proyecto GNU:
«Software libre» es el software que respeta la libertad de los usuarios y la comunidad. A grandes rasgos, significa que los usuarios tienen la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software²
El movimiento del software libre es uno de los movimientos sociales más exitosos que ha surgido de la cultura informática, impulsado por una comunidad mundial de programadores éticos dedicados a la causa de la libertad y el intercambio. Pero el éxito final del movimiento del software libre depende de que enseñemos a nuestros amigos, vecinos y compañeros de trabajo el peligro de no tener libertad de software, el peligro de que una sociedad pierda el control sobre su informática ³
Las 4 Libertades escenciales:
Las bases fundamentales del software libre se basan en las 4 libertades:
- Libertad 0: La libertad de ejecutar el programa como se desee, con cualquier propósito.
- Libertad 1: La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que se desee. El acceso al código fuente es una condición necesaria para ello.
- Libertad 2: La libertad de redistribuir copias para ayudar a otros.
- Libertad 3: La libertad de distribuir copias de sus versiones modificadas a terceros. Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.
Todo programa o aplicación que se considere software libre debe contener estas 4 libertades, así como los componentes o tecnologías que hayan sido utilizadas para desarrollar el mismo.
La razón por la cual inicia en la libertad 0, es porque en la ingeniería de software se empieza a contar desde el 0, en vez del número 1.
El Software Libre se puede vender:
Un malentendido muy común es pensar que el Free Software es lo mismo que software “Gratuito”. Si bien la mayoría de software Libre es también gratuito, eso no quita que el software pueda tener valor monetario si los desarrolladores así lo desean. Existen grupos, organizaciones y empresas que hacen dinero distribuyendo software libre, dando servicios de soporte, o recibiendo donaciones de parte de sus propios usuarios.
Algunas de las más destacables son:
- Red Hat.
- Gnome Foundation.
- Canonical.
- Krita Foundation.
- Linode.
- Tuxedo Computers.
- Endless.
- System76.
- Mozilla Corporation.
- Suse.
- Wordpress.
- Wikimedia / Wikipedia.
Este malentendido también se debe a que en el idioma inglés “Free significa tanto “libertad” como “gratuito”. Por este motivo, muchos angloparlantes utilizan la palabra “Libre” en español para marcar la diferencia. También es común escuchar frases como “free as in free speech, not free beer” (Libre en el sentido de libertad de expresión, no cerveza gratis).
Piratería:
Los movimientos en favor del software libre NO son partícipes ni apoyan la piratería. El hecho que el código fuente de un software se filtre y ahora a la vista del público NO lo hace software libre, como puede ser el caso de Windows XP, Team Fortress 2, o Twitch. Todas estas tienen licencias y patentes propietarias y privativas.
En todo caso, argumentan que dar una licencia libre es una solución a la piratería de software.
Licencias:
Para que un software sea libre, necesita estar publicado bajo una licencia “Copyleft” que permita el uso de las 4 libertades escenciales.
En la página oficial de la Free Software Foundation, podemos encontrar un listado de licencias libres, compatibles, y privativas. Algunas de las más importantes son:
Licencia Pública General de GNU Versión 3 (GPL3)⁴.
Licencia Pública General de GNU Versión 2 (GPL2)⁵: La GPLv2, por sí misma, no es compatible con la GPLv3. Sin embargo, la mayoría del software publicado bajo la GPLv2 permite que se utilice también bajo los términos de las versiones posteriores de la GPL.
Licencia Pública General Reducida de GNU (LGPL) versión 3⁶: Una licencia de software libre, pero sin un sólido copyleft, ya que permite el enlazado con módulos privativos. Es compatible con la GPLv3.
Licencia Pública General Affero de GNU (AGPL) versión 3⁷: Esta es una licencia de software libre con copyleft. Sus términos son en la práctica los mismos de la GPLv3, con un párrafo adicional en la sección 13 que permite a los usuarios que interactúan con el software bajo esta licencia en una red, recibir la fuente de tal software.
Licencia Completamente Permisiva de GNU⁸: Esta es una licencia de software libre laxa, permisiva, compatible con la GPL de GNU, que recomendamos usar en los pequeños archivos de soporte de los paquetes de GNU, como README, etc. Todos los desarrolladores, si lo desean, pueden usarla en situaciones similares.
Licencia Apache, versión 2.0⁹.
Licencia Pública de Mozilla (MPL), versión 2.0¹⁰.
Dominio Público¹¹: El dominio público no se refiere a tener una licencia; más bien, significa que el material no se encuentra bajo copyright y no es necesaria ninguna licencia. Prácticamente hablando, si una obra es de dominio público, puede a su vez tener una licencia de software libre totalmente permisiva sin copyleft. El material en dominio público es compatible con la GPL de GNU.
Open Source Software:
Existe una confusión y controversia entre el “Software Libre” y el “Software de Código Abierto” u “Open Source”.
Para dejarlo claro, ambos términos se refieren a movimientos y pensamientos distintos, más concretamente, la Free Software Foundation y el movimiento GNU no están asociados en lo absoluto con los movimientos de Open Source, y en especial con la “Open Source Initiative” la cual es una organización sin fines de lucro creada en 1998.¹²
Según Richard Stallman en su artículo: Por qué el «código abierto» pierde de vista lo esencial del software libre:
Las expresiones «software libre» y «código abierto» («open source») se refieren aproximadamente al mismo conjunto de programas. No obstante, al basarse en valores diferentes, lo que dicen acerca de esos programas es muy distinto. El movimiento del software libre defiende la libertad de los usuarios de ordenadores, es un movimiento en pro de la libertad y la justicia. La idea del código abierto, por el contrario, valora principalmente las ventajas prácticas y no defiende principios. Esta es la razón por la que estamos en desacuerdo con la campaña del código abierto y no empleamos esa expresión.
Según la la Open Source Initiative:
El “código abierto” se centra en las consecuencias prácticas que permiten estas licencias: una colaboración sorprendentemente eficaz en el desarrollo de software. El software libre fue lo primero. Más tarde, se hizo evidente que el software libre estaba dando lugar a una dinámica de colaboración notable. En 1997, el ensayo seminal de Eric Raymond “The Cathedral and the Bazaar” centró la atención en las implicaciones que el software libre tiene para la metodología de desarrollo de software.¹³
En resumen, el “Software Libre” es un movimiento social, ideológico y fislosófico, mientras que el “Código abierto” se centra en las practicidades de los principios del software libre dentro del desarrollo de software.
Un programa puede a su vez ser “Software Libre” y de “Código Abierto”, ajustándose a ambas definiciones, estos suelen conocerse como “FOSS” (Free and Open Source Software).
Sin embargo, un programa puede ser de “Código Abierto” pero estar bajo una licencia restrictiva no compatible con las 4 libertades del software libre, como puede ser el caso de un programa que tenga su código en un repositorio público como Github, pero que prohiba aportes, contribuciones, o modificaciones de voluntarios ajenos al equipo de desarrollo interno.
Importancia del Software Libre:
Hoy en día nuestras vidas digitales, así como nuestra información, está a mercer de unos pocos monopolios tecnológicos, los cuales mantienen una hegemonía cultural.
El software libre nos permite una autonomía digital, tomar control sobre la tecnología que utilizamos, y nuestra información.
Algunas de las ventajas del software libre son:
- Privacidad.
- No contienen características ocultas que perjudiquen al usuario final.
- La mayoría de programas y aplicaciones son gratuitas o de costo reducido.
- No existe la piratería con el software libre, protegiendo a las personas de los peligros asociados con esta.
- Si un programa o aplicación es abandonado por sus desarrolladores, voluntarios pueden retomarlo para que siga activo y mejorándose.
- Las licencias de software libre no expiran, el usuario se hace propietario de su copia del programa o aplicación.
- Los voluntarios en el desarrollo pueden descubrir vulnerabilidades en el software, e inmediatamente arreglarlas, haciendo el software libre más seguro.
- Empresas, escuelas e instituciones pueden desarrollar y añadir funciones o características a un software ya existente para ajustarlo a sus necesidades.
- Inventiva el pensamiento crítico, la alfabetización tecnológica y el aprendizaje en desarrollo de software.
- Enseña a adaptarse a distintos entornos de trabajo e interfaces.
- Enseña a encontrar soluciones a problemas.
- Inventiva a la investigación y la lectura de documentación.
Licencia: CC BY 4.0