En el mundo de la tecnología hay errores comunes con términos que no siempre conseguimos diferenciar adecuadamente. Por ejemplo, aunque todos entendemos bastante bien la diferencia entre el software privativo y el no privativo, no siempre pasa lo mismo a la hora de separar los conceptos de software libre y el de código abierto.
En primer lugar, el software libre no es sinónimo de gratuito, aunque en inglés la palabra free pueda significar ambas cosas. Por otro lado, aunque es siempre de código abierto u Open Source, no todo el software de código abierto es libre. Aunque para entenderlo lo mejor será ver qué es cada cosa y ver después cuales son las diferencias más significativas.
Y es que, tal y como defiende el propio Richard Stallman, "el movimiento por el software libre y el movimiento por el código abierto son como dos frentes políticos entre la comunidad de software libre". Ambos persiguen un objetivo común de dar mayor libertad y transparencia al mundo del software, pero difieren bastante en sus maneras de llevarlo a cabo.
El Software Libre se define por su ética
El Software Libre no sólo son aquellos programas cuyo código está abierto al público para que cualquiera pueda mejorarlo. Representa todos aquellos que respetan las libertades esenciales del usuario definidas por la Free Software Foundation, fundación creada en 1985 por Richard Stallman para defender las libertades en el mundo tecnológico.
Estas son las cuatro libertades esenciales de los usuarios tal y como las define la FSF:
- La libertad de ejecutar el programa como se desea, con cualquier propósito (libertad 0).
- La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
- La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
- La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). 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.
Las cuatro libertades, según explica la fundación, tienen que ser aplicadas en todo el código de un programa. De esta manera, si creamos un software a partir de otro, tenemos que asegurarnos de que tanto la base sobre la que estamos trabajando como las líneas que nosotros hemos añadido al proyecto respeten estas libertades. Vamos, que el software producido a partir de software libre debería ser libre también.
El software comercial también puede ser considerado libre
Esto no quiere decir que no pueda ser comercial. Las libertades 2 y 3 para distribuir copias a terceros con o sin modificaciones permiten que se haga de forma gratuita o cobrando una tarifa por la distribución. Mientras el programa respete las cuatro libertades esenciales, seguirá considerándose libre se cobre o no por él.
Por lo tanto, si vamos a vender software libre debemos tener en cuenta que tenemos que permitir y no combatir que cualquier usuario pueda modificarlo a su antojo, tanto si es para mejorarlo y adaptarlo a su uso personal como si quiere difundirlo o incluso cobrar por su distribución. Es por lo tanto una filosofía opuesta de la que siguen las grandes corporaciones con su software privativo, que ni tiene el código abierto ni se suele permitir que se difundan copias modificadas.
Para evitar problemas en el uso comercial, la Free Software Foundation acepta reglas eventuales sobre cómo empaquetar versiones modificadas. Es aceptable, por ejemplo, utilizar licencias que obliguen a que el software libre modificado tenga que utilizar otro nombre, eliminar un logotivo, o identificar las modificaciones que son suyas. El límite está en que las licencias no sean tan agobiantes que dificulten la publicación de las modificaciones.
Por lo tanto, podemos decir que la definición del Software Libre no está tanto en la manera en la que se distribuye como en la ética a la hora de distribuirlo. Es una manera de pensar, y aunque algunos puntos puedan parecer bastante radicales, con ella se está intentando que el software no dependa de empresas y que cualquiera pueda acceder a él independientemente de sus recursos.
Open Source, una escisión pragmática
El 3 de febrero de 1998, varios integrantes de la comunidad de Software Libre decidieron ir por su cuenta y crearon la Open Source Initiative (OSI). La decisión se tomó justo después del lanzamiento de Netscape, viendo en él una oportunidad para educar a los usuarios y empresas sobre los beneficios prácticos para los proyectos que deciden liberan su código.
Así como la ética del Software Libre se define en cuatro puntos, la Open Source Iniciative tiene diez requisitos a cumplir por parte de un proyecto o las licencias bajo las que se publica para que pueda ser definido como de código abierto:
- Libre redistribución: La licencia del software no debe impedir que este sea regalado o vendido libremente como parte de una distribución mayor que contenga programas de diferentes fuentes. Tampoco debe exigir un pago por hacerlo.
- Código fuente: A la hora de publicar un programa tiene que incluirse su código fuente íntegro o permitir acceder libremente a él.
- Trabajos derivados: Las licencias deben permitir modificaciones y trabajos derivados, y debe permitir que estos se distribuyan bajo los mismos términos que el software original.
- Integridad del código fuente del autor: Se puede impedir la distribución de modificaciones únicamente si se permite la distribución de tales como parches. También se puede requerir que trabajos derivados cambien de nombre o número de versión.
- Sin discriminación de personas o grupos: No se puede discriminar a ninguna persona o grupo a la hora de acceder a un programa o su código.
- Sin discriminación de áreas de iniciativa: Tampoco le se puede restringir su acceso a ninguna iniciativa. Las empresas o grupos de investigación tienen tanto derecho como el resto a utilizar el software.
- Distribución de la licencia: Los derechos asociados en las licencias de los programas deben aplicarse a todos a los que lo redistribuyan sin necesidad de pedir una licencia adicional.
- La licencia no debe ser específica de un producto: Un programa no puede licenciarse únicamente como parte de un software mayor. Podrá ser extraído y utilizado libremente y con todos los derechos en otras soluciones.
- La licencia no debe restringir otro software: El hecho de que un proyecto sea de código abierto no puede obligar a que los programas en los que se incluye sean también de código abierto.
- La licencia debe ser tecnológicamente neutral: Ninguna disposición de la licencia puede basarse en la tecnología o un estilo de interfaz, con lo que, por ejemplo, no se debe requerir su aceptación mediante gestos explícitos como clicks de ratón.
Como veis, los puntos son bastante menos ideológicas y más pragmáticos. No se centran tanto en el hecho que los programas derivados mantengan las características, sino en fomentar la apertura del código que utilizan los programas para que todos puedan colaborar y beneficiarse. Esta flexibilidad les ha permitido ganarse socios de renombre como Facebook, Google, la Linux Foundation o Mozilla.
Por lo tanto, en vez de un manifiesto ético lo que tenemos son puntos prácticos con los que regular una actividad y poner orden previendo cualquier caso o conflicto que se pueda dar. Pero tampoco deja de lado las libertades, ya que en varios de sus puntos exigen que no se discrimine a nadie a la hora de poder acceder al código.
También es importante recalcar que no todos los programas que liberan su código fuente son de código abierto, ya que este código puede estar siendo liberado bajo unas licencias restrictivas que contradigan los principios en los que se basa el proyecto Open Source.
¿Cuales son las principales diferencias?
Estamos ante dos maneras de afrontar un objetivo similar, por lo que las diferencias no son demasiadas. La principal es que el código abierto es menos estricto que el software libre, por lo que en la práctica todo software libre se puede calificar como código abierto, aunque no todo el software de código abierto tiene por qué ser libre. Por ejemplo, algunas licencias de Open Source son demasiado restrictivas como para considerarse libres.
Otra pequeña diferencia nos la encontramos a la hora de proteger a los autores originales. La FSF recula con una excepción que permite que los autores puedan pedir que un producto basado en el suyo sea renombrado para evitar confusiones. Mientras, la OSI va un poco más allá permitiendo que se pueda impedir la distribución de algunos subproductos, aunque siempre a cambio de que puedan ser publicados como parches o añadidos para el original.
Pero más allá de eso las diferencias tampoco son demasiadas. A ojos de Stallman, con el software libre se le quiere dar sentido a la libertad que implica el término, mientras que utilizar código abierto no implica que haya siempre libertad, sino disponibilidad a la hora de acceder al código. Aún así, el propio Stallman admite que aunque no están de acuerdo en los principios básicos, sí que lo están en las recomendaciones prácticas y en el colaborar en contra del software privativo.
En Genbeta | Linus Torvalds te dice en este vídeo por qué deberías trabajar en Linux y el Open Source
Ver 14 comentarios