Software libre
Libertad y cooperación
Computación es una palabra clave en nuestro mundo actual, la consumimos a diario y nos ayuda a realizar nuestras tareas del día a día. Pero, ¿cuánto se conoce acerca de las licencias del software que consumimos? ¿qué podemos y qué no podemos hacer con el software que usamos? ¿leímos los términos y condiciones del software que instalamos alguna vez? ¿o nos limitamos a hacer aceptar, siguiente, siguiente?
Para comenzar, cuando uno busca y lee la licencia que le indica lo que puede y lo que no puede hacer con el software, puede encontrarse con varios modelos distintos. Entre ellos está el software libre, que en pocas palabras, sus objetivos son brindar la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software, lo que da lugar a la cooperación. Ahora, ¿cómo surgió? ¿de qué manera consigue estos objetivos? A continuación un breve resumen.
Hace mucho tiempo la idea de licenciar el software, un objeto intangible, era más extraña, desconocida y poco usual. El rubro recién había nacido y perseguía mayormente el objetivo de evolucionar técnicamente. En ese entonces, casi todo el desarrollo ocurría en universidades e institutos de investigación y era común compartir los avances entre toda la comunidad.
Sin embargo, para la década de los 80 esto había cambiado y gran parte del software que se distribuía en esos momentos había pasado a ser privativo. ¿Qué quiere decir que el software sea privativo? Significa que si se quiere instalar y usar dicho software, se debe obtener una licencia que le permita hacerlo. Y que además dicha licencia prohíbe también la copia y la modificación.
Eso no es todo, otra restricción de dichas licencias es que el código fuente no es de acceso público. Donde código fuente se refiere a aquel documento que escriben les programadores en un lenguaje de programación, que luego se traduce a un archivo binario, es decir, un archivo en un lenguaje máquina que la computadora puede entender y finalmente ejecutar.
El acceso a este código fuente es importante, ya que permite conocer qué hace un programa de computación y cómo lo hace.
Estas restricciones impiden que el usuario se encuentre en control del programa, inclinando la relación de poder hacia el desarrollador (así sea una empresa, una fundación, un independiente, etc).
Volviendo a la historia, estas licencias privativas significaron que compartir lo hecho entre las comunidades de las instituciones ya no era tan sencillo e incluso podía llegar a ser imposible.
Fue así que en 1983, un desarrollador del MIT descubrió con desilusión que las computadoras nuevas solicitaban la firma de unos acuerdos de no divulgación para utilizar sus sistemas operativos. También notó cómo estos acuerdos, que se utilizaban cada vez más en el software (incluso en los institutos de investigación), prohibían la existencia de una comunidad cooperativa, como a la que él estaba acostumbrado desde sus inicios en el laboratorio de Inteligencia Artificial, hacía más de 10 años.
Por lo que, motivado por este cambio, pensó de qué manera podía aportar para defender estas ideas de libertad y cooperación. Esto lo llevó a desarrollar GNU, un sistema operativo libre, que más tarde se combinó con Linux.
Además, pensando en lo que debía requerir el software para mantener esta idea de comunidad y poder lograr la libertad de los usuarios, se definieron las siguientes 4 libertades que requiere un programa para ser considerado software libre:
0. La libertad de ejecutar el programa como se desee, con cualquier propósito.
1. La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que se desee.
2. La libertad de redistribuir copias para ayudar a otros.
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.
Sobre la libertad 0, se trata de una libertad enfocada al usuario y no al programador, y evita que el programador tenga el derecho de imponer al usuario sus propios objetivos.
La libertad 1, otorga la posibilidad de realizar y usar el programa con cualquier tipo de modificación que desee. Para esto es necesario que se provea el código fuente y que se eviten prácticas como la “tivoización”, término que alude al hecho de bloquear por hardware la instalación o uso de versiones no aprobadas por el desarrollador original del programa.
Las libertades 2 y 3, apunta a los colectivos y no tanto a lo individual; permitiendo que cualquier persona redistribuya versiones modificadas (o no) del programa original. Para estas últimas 2 libertades, las licencias pueden tratarse opcionalmente de copyleft 🄯; donde el copyleft es un método que pide que las versiones redistribuidas también sean libres, permitiendo seguir garantizando siempre las 4 libertades.
Entre ejemplos de licencias que cumplen con estas 4 libertades, se puede citar la licencia libre GPL (GNU General Public License, en español Licencia Pública General de GNU) surgida en el proyecto GNU, que en particular se trata de una licencia de copyleft.
Otro ejemplo es la Licencia MIT. Esta licencia permite el uso del programa libre en programas no libres, pero no garantiza que las versiones derivadas o redistribuidas sigan siendo libres, debido a que no es copyleft.
Si leíste hasta acá y te gustó la posibilidad de libertad en el software que usás, entonces una opción es empezar a utilizar software libre para algunas tareas cotidianas. Existe software libre que permiten cumplir gran parte de las necesidades, e incluso mucha gente utiliza el software libre diariamente directa o indirectamente, sin tener noción de esto. Un ejemplo es el sistema operativo combinado GNU/Linux mencionado anteriormente, que es utilizado hoy en día por una gran parte de los servidores de las páginas web que visitamos a diario.
¿Significa esto que debo usar solo software libre, aún cuando no exista una alternativa que cumpla mis necesidades? No. Pero sirve y el hecho de tener consciencia y cambiar algún programa privativo por alguna variante libre que sí las cumpla ya es un gran aporte. O simplemente mencionando y charlando sobre el tema. También se puede colaborar con un proyecto, tanto programando, como ayudando en tareas distintas, como ser las traducciones para que un programa este disponible en varias lenguas.
Antes de finalizar, hay que aclarar que el software libre no se enfoca ni en el precio, ni en las ventajas pragmáticas o redituables económicamente que pueden ofrecer los postulados de una licencia libre. El objetivo del software libre es la libertad, tanto del usuario, como del programador.
Por esto es importante diferenciar al software libre, de otro movimiento llamado código abierto. Ya que el código abierto persigue objetivos muy distintos y difiere filosóficamente con el software libre; a pesar de que en varios casos un programa de software libre, puede considerarse también de código abierto desde el punto de vista práctico.
Para el código abierto, la cuestión de que el código fuente sea de acceso libre y pueda distribuirse y modificarse es una cuestión práctica, en lugar de ética, aludiendo entre otros, a las ventajas de mayor calidad, flexibilidad, seguridad y costo en los productos.
Por supuesto, debe haber muchos interrogantes abiertos y no está en plan de este artículo cubrirlos todos. Espero haber acercado un poco la ideas del software libre y que se conozca que hay una alternativa de libertad en lo que a software refiere. Además, estas discusiones y objetivos que busca el software libre no son propios del software, ya que las ideas de libertad y de socializar el conocimiento trasciende rubros. Acaso, ¿no es genial la idea de compartir y mejorar colectivamente?
Nota: Este artículo fue escrito en Libreoffice, una suite ofimática libre, alternativa a los privativos ©Google Doc o ©Microsoft Office. Este programa cubrió mis necesidades para la confección del artículo. También utilizo Mozilla Firefox diariamente, el cual es código abierto. Por supuesto, luego no puedo asegurar que la arquitectura de Medium sea software libre, pero al menos una parte del proceso sí lo fue.
Bibliografía, mayormente de: