📜 Tabla de contenidos
Introducción
Probablemente uno de los hechos que más cambió mi forma de ver mucho de los aspectos de mi día a día fue el descubrir el software libre. No deja de chocarme que, pese a ser el software y la tecnología algo tan presente en nuestras vidas, la mayoría de personas desconocen el término. Incluso en algunos casos, se tiene una idea vaga de que es algo gratuito y por ende, de escaso valor o calidad.
Lo cierto es que el software libre ha jugado un papel fundamental en la construcción de la sociedad de la información en la que vivimos, de muchas más maneras de las que el usuario medio imagina. Desde la mayoría de teléfonos que usamos (tando Android como iPhone) hasta los servidores que manejan y controlan Internet, el software libre está allá dónde mires. En esta entrada intentaré aclarar algunas dudas y aportar mi punto de vista sobre el tema.
¿Qué es el software libre?
Supongo que es la primera pregunta que tenemos que contestar. Para ello, nada mejor que remitirnos a la página del sistema operativo GNU, el cual a su vez fue el germen de la Free Software Foundation. El software libre es aquel que permite al usuario la libertad de ejecutar, copiar, distribuir, estudiar, cambiar o mejorar el software.
Que un software sea libre quiere decir que cumple una serie de requisitos:
- El usuario tiene la potestad de poder ejecutar el programa en cualquier ordenador y para cualquier fin, sin necesidad de comunicárselo al creador.
- Asimismo, otorga al usuario la capacidad de estudiar el código fuente, con el fin de estudiar su funcionamiento, pudiendo así detectar problemas o errores y modificarlo para su propio beneficio.
- Por último, el usuario tiene la capacidad de copiar, distribuir o incluso vender el software, siempre y cuando respete estas mismas libertades para los demás.
Sé que habrá varias cosas en la enumeración anterior que te habrán hecho levantar una ceja con recelo. ¿Por qué un autor daría un producto de su trabajo gratis? ¿Por qué motivo daría al usuario la potestad de vender copias del mismo? ¿Qué sentido tiene esto en una sociedad económica como la nuestra? Vayamos por partes:
Poder ejecutar el programa para cualquier uso
Esto quiere decir que es el objetivo que persigue el usuario lo que importa, no el objetivo del desarrollador. El usuario puede ejecutar el programa, y si lo redistribuye, aquellas personas que lo adquieran pueden hacer lo mismo. Huelga decir que permitir ejecutarlo cuando se quiera significa también no ejecutarlo nunca, si es lo que el usuario quiere. Y todos tenemos en la mente programas que se ejecutan y que hacen lo que quieren sin que el usuario lo sepa, o peor, que lo hagan aún cuando el usuario no quiera.
Estudiar el código fuente
Estando relacionado con la definición anterior, para que el usuario pueda darle el uso que quiera al programa y adaptarlo a sus necesidades, es necesario disponer del código fuente. Sin éste, sería practicamente imposible modificar el comportamiento del programa. Y aunque esto no sea algo que vayan a realizar la mayoría de usuarios, es impriscindible para mantener la libertad del software, y que no dependa de una empresa o desarrollador para obtener mejoras, actualizaciones, etc. Si el desarrollador o empresa decide abandonar el software, siempre puede tomar el código otra persona y continuar mejorándolo, para beneficio de todos.
Copiar, vender, distribuir libremente el software
También relacionado con los anteriores, pero quizá el punto más interesante. Cuando tú adquieres un producto, debes ser libre de hacer con él lo que te parezca, puesto que es tuyo. Y eso incluye mejorarlo, como hemos visto en el punto anterior, pero también dárselo o venderlo a quien quieras. Estamos muy acostumbrados, debido a la sociedad mercantilista en la que vivimos, a intentar asemejar el comercio de software a las transacciones físicas que realizamos habitualmente. Sin embargo, el software es por naturaleza distinto a otro tipo de productos con los que estamos acostumbrados a relacionarnos, puesto que es fácilmente replicable. De esta manera, se elimina lo que podríamos entender como la oferta del producto, puesto que puedes tener tantas copias como desees, con practicamente cero coste. Por ello, este modelo de negocio no se ajusta bien al software y resulta antinatural.
Sin embargo, que la copia y distribución de un programa lleva un coste asoaciado prácticamente nulo no implica que con su desarrollo haya pasado lo mismo. Pasar por alto esto es muy habitual y es la raíz de que haya mucha gente que piense que el software libre es gratis. Quizá en español no existe esa confusión porque el término no es ambiguo, pero en inglés se habla de free software. El problema de la palabra free es que significa libre, pero también gratis en algunos contextos. Por eso se suele emplear libre software, también en inglés. Es perfectamente razonable que los desarrolladores o empresas que generen el software quieran cobrar un precio por el trabajo realizado. Pero entonces, quizá te estés preguntando que si el código fuente del programa es público, ¿quién pagaría por obtener una copia del programa? La clave está en el valor añadido:
- Si tú eres un usuario final, quizá no sepas te interese saber como obtener un programa ejecutable a partir del código fuente, pues ahí está el valor añadido de la empresa.
- Si tú eres una empresa, quizá quieras adaptar el programa a las necesidades de tú negocio, pero no tienes porqué tener un equipo de desarrolladores que lo hagan a partir del código fuente. Pues ahí está el valor añadido de la empresa.
- También es muy frecuente que la empresa, además de proporcionarte el producto de software, te asegure soporte para el correcto funcionamiento del mismo, te de formación para tus empleados, etc. Ahí también está el valor añadido de la empresa.
Quizá te siga pareciendo que esta forma de negocio es imposible o no es rentable. Pues te sorprenderá saber que muchas de las empresas tecnológicas del mundo trabajan de esta manera, y cada día más. Por ponerte algunos ejemplos:
- RedHat. Es una empresa norteamericana especializada en proporcionar servicios de software basados en herramientas libres.
- Google. Sobran las presentaciones, su sistema operativo móvil Android es de código abierto y usa el kernel Linux, el cual también es de código abierto.
- Apple. El sistema operativo de los dispositivos de Apple está basado en otro de código abierto llamado Berkeley Software Distribution, entre otros.
Tampoco quiero decir que la única forma de hacer negocio con estas empresas sea esta que he descrito, pero sirve para entender la gran viabilidad del software libre en el mundo empresarial. Además, hay muchísimos otros ejemplos de empresas que lo utilizan de una forma u otra para elaborar sus productos, sin que el software sea el principal componente del mismo, pero necesario aún así. Hoy en día, hay muchísimos aparatos cotidianos que incorporan sistemas informáticos, y usan soluciones libres para ello. Por ejemplo, un libro electrónico puede que use un sistema operativo libre puesto que el principal producto es el libro en sí, no el software que se ejecuta dentro.
También es importante entender que una organización o empresa puede usar un programa de software libre, modificarlo para su uso privado, y decidir no compartirlo y eso está bien. Es sólo cuando esa modificación va a formar parte de un producto que se vende o proporciona a terceros, cuando esta modificación y el código fuente ha de ser compartido.
¿Por qué es importante el software libre?
Una vez dada una introducción a qué es el realmente el software libre, podemos ver que es algo que va más allá de un programa informático. Es una filosofía que versa sobre aspectos fundamentales de nuestra vida actual, que es fundamentalmente tecnológica. Los programas informáticos que no son libres se denominan privativos (es decir, que no se proporciona el código libremente). El término es muy acertado porque efectivamente nos privan de nuestra libertad. Para entender mejor cómo nos afecta, veamos algunos de estos aspectos.
Es probable que tengas en mente muchos ejemplos de programas informáticos que usamos bastante a menudo que son privativos. Las herramientas de oficina de Microsoft, herramientas de edición de PDFs o de imágenes de Adobe, etc. En estos ejemplos se ilustra muy bien por qué estos programas cohartan la libertad de los usuarios:
- Los que lo compran, porque no son propietarios del programa en cuestión, sino arrendatarios. Están sujetos a las decisiones que tomen las empresas o desarrolladores, que realmente son los dueños del producto.
- El resto de personas alrededor del usuario que lo compra, ya que para poder poder usar los resultados de estos programas (documentos, ficheros de imagen, audio, etc) están obligados a también pagar licencias de dichos programas, sacrificando así también su libertad en este aspecto.
Es por ello que es tan importante intentar evitar el uso de estos programas, que resultan tan nocivos para las personas que los usan. Existen suficientes alternativas se software libre para satisfacer las necesidades de la mayoría de usuarios. En aquellos casos de que se traten de herramientas muy específicas relacionadas con determinados trabajos, los modelos de negocio descritos serían capaces de satisfacer esa demanda.
¿Cómo distribuir el software libre? Las licencias del software
Es fácil pensar que sería muy fácil aprovecharse del trabajo realizado por otros mediante el software libre. Simplemente bastaría con utilizar el código desarrollado por otra persona, y usarlo en tu propio proyecto. Una vez compilado, si lo único que se proporciona a los usuarios es el ejectuable, es muy difícil determinar el código fuente a partir de éste, con lo que el “crimen” quedaría encubierto. Para asegurar que se respetan los principios del software libre, así como evitar estos abusos, existen las distintas licencias de software libre.
Estas licencias son contratos que determinan bajo que condiciones es posible usar un programa de software libre, y siempre que se reciba un programa se debe también recibir una copia de esta licencia. Existen diferentes tipos, pero la principal diferencia sobre la que quiero incidir es la diferencia entre licencias permisivas y copyleft.
Licencias copyleft
Las licencias copyleft son aquellas que garantizan que la distribución del software atiende a las condiciones de las que hemos hablado cuando explicábamos lo que es el software libre. Básicamente son aquellas que permiten a los usuarios obtener el código fuente de sus programas y que obligan a que sus modificaciones, de ser publicadas, tengan las mismas restricciones. El ejemplo más famoso y el normalmente usado en los proyectos de software es la GNU General Public License.
Licencias permisivas o laxas
Existe otra categoría de licencias de software libre que no imponen restricciones sobre la forma de redistribuirlo. De esta manera, si alguien usa este software y lo modifica, podría redistribuirlo de manera privativa, sin necesidad de proporcionar la fuente. Esto, que a priori puede no parecer un problema, bajo ciertos escenarios podría serlo.
El problema con las licencias permisivas
Imagina que un usuario desinteresado publica su programa con esta licencia, y una empresa decide coger el código, hacerle algunas modificaciones y distribuirlo de forma privativa. La empresa puede usar sus recursos para publicitarlo y hacerlo popular, haciendo que muchos usuarios usen la versión privativa, en lugar de la versión de software libre. Mientras exista la versión libre y fueran compatibles no habría más problema, pero si la empresa hace suficientes modificaciones para que no lo sean, esos usuarios quedarían atrapados usando esa versión privativa. Eventualmente, el desarrollador desinteresado no podrá continuar el desarrollo y la empresa habrá conseguido obtener beneficio del trabajo de otros, para posterior perjuicio de todos los usuarios.
Este tipo de comportamientos son más comunes de lo que pueda parecer, y es por ello que es importante asignar licencias copyleft a nuestros proyectos, para asegurar que sigan siendo de utilidad para todos.
Comentarios finales
El software libre es realmente maravilloso, y nos permite tener una mayor libertad en nuestra vida digital, algo que cada vez es algo más complejo. Hay muchos desarrolladores que prefieren licencias permisivas para asegurar una “mejor” compatibilidad con proyectos empresariales. Yo soy de la opinión de que el esfuerzo y espíritu colaborativo del software libre no es un impedimento para el desarrollo empresarial. Y si en algún caso lo fuera, no creo que ese desarrollo empresarial mereciera la pena. Nuestra libertad es demasiado valiosa como para abandonarla por ello.
Nota del autor: Este tema es complejo y quizás descubras inexactitudes o errores en el texto. He intentado manifestar mi opinión sin ser demasiado exhaustivo con el tema. No obstante, puedes contactarme para notificarme de errores o comentarios por correo. ¡Gracias!