La respuesta corta: en la práctica, casi todo programa que cumple una definición cumple también la otra. Linux, PostgreSQL, Firefox o Python son libres y de código abierto a la vez. La diferencia está en el motivo de cada movimiento y en lo que cada uno considera importante defender.
Software libre: una cuestión de libertad
El término viene de Richard Stallman, que en 1983 anunció el proyecto GNU y en 1985 fundó la Free Software Foundation (FSF). Para la FSF un programa es libre si quien lo usa tiene cuatro libertades:
- Libertad 0: ejecutar el programa para cualquier propósito.
- Libertad 1: estudiar cómo funciona y modificarlo. Para eso hace falta el código fuente.
- Libertad 2: redistribuir copias.
- Libertad 3: distribuir versiones modificadas.
El “libre” se refiere a libertad, no a precio. En inglés la confusión es mayor porque free significa las dos cosas; de ahí la frase “free as in freedom, not as in free beer”. Se puede vender software libre y se puede regalar software que no lo es.
Para el movimiento del software libre esto es un asunto ético: un programa que no respeta esas libertades le quita control a quien lo usa.
Código abierto: una cuestión de método
En 1998, un grupo que incluía a Eric Raymond y Bruce Perens fundó la Open Source Initiative (OSI) y popularizó el término open source. La idea era presentar lo mismo a las empresas sin el discurso moral: compartir el código produce mejor software, más auditado y más barato de mantener.
La OSI publica la Definición de Código Abierto, con diez criterios: redistribución libre, acceso al código fuente, permiso para obras derivadas, no discriminar personas ni campos de uso, entre otros. Una licencia es “de código abierto” cuando la OSI la aprueba.
Dónde se separan
Las dos listas de licencias aprobadas, la de la FSF y la de la OSI, coinciden casi por completo. MIT, BSD, Apache 2.0, GPL, LGPL, MPL y AGPL están en ambas. Los desacuerdos son pocos y en casos límite.
La diferencia real aparece en las decisiones:
- Al elegir licencia. Quien piensa en términos de libertad suele preferir el copyleft (GPL, AGPL), que obliga a que las versiones modificadas sigan siendo libres. Quien piensa en adopción suele preferir licencias permisivas (MIT, Apache), que permiten incluir el código en productos cerrados.
- Al hablar de dependencias cerradas. Para la FSF, un sistema libre que necesita un controlador privativo tiene un problema. Para muchos en el mundo open source es un compromiso aceptable.
- En el vocabulario. “Software libre” pone el foco en quien usa el programa. “Código abierto” lo pone en cómo se desarrolla.
¿Y FLOSS?
Para no tomar partido se usan las siglas FOSS (Free and Open Source Software) o FLOSS (agrega Libre, justamente para evitar la ambigüedad de free). En español, “software libre y de código abierto” cumple la misma función.
Lo que no es ni lo uno ni lo otro
Algunas cosas se parecen pero no califican:
- Freeware: gratis, pero sin código fuente ni permiso para modificarlo.
- Código visible (source available): se puede leer el código, pero la licencia restringe el uso. Las licencias BSL o SSPL que adoptaron algunas empresas en los últimos años caen aquí; la OSI no las reconoce.
- Código “abierto” sin licencia: un repositorio público sin archivo de licencia no es libre. Por defecto, el autor conserva todos los derechos.
Entonces, ¿cuál término usar?
Si hablas de un programa concreto, cualquiera de los dos describe lo mismo. Si hablas de por qué conviene usarlo, el término que elijas dice algo de tus razones. En este sitio usamos ambos, y cuando la diferencia importa lo decimos.
Para seguir: ventajas y desventajas del código abierto y todo lo que conviene saber antes de usarlo.
Preguntas frecuentes
¿El software libre es gratis? No necesariamente. “Libre” se refiere a libertad, no a precio: se puede vender software libre y se puede regalar software que no lo es.
¿Linux es software libre o de código abierto? Ambas cosas. Linux, igual que PostgreSQL, Firefox o Python, cumple tanto la definición de software libre como la de código abierto.
¿Qué significa FOSS? Significa Free and Open Source Software, es decir, software libre y de código abierto. Se usa para no tomar partido entre los dos términos; FLOSS agrega “Libre” para evitar la ambigüedad de free.
¿Un programa gratis es software libre? No. El freeware es gratis, pero no entrega el código fuente ni permite modificarlo, así que no es libre ni de código abierto.
¿Quién creó el software libre? Richard Stallman, que anunció el proyecto GNU en 1983 y fundó la Free Software Foundation en 1985. El término código abierto lo popularizó la Open Source Initiative, fundada en 1998.