No diga "código abierto", diga "código libre"

4008 lecturas

Afortunadamente en castellano las palabras libre y gratis no son sinónimas, como en inglés (free). De hecho, a mí me parece un acierto que no lo sean. Algo gratis no implica que sea libre, y algo libre no necesariamente es gratis. Las clases de religión en iglesias y mezquitas pueden ser gratuitas, pero lo que enseñan no es precisamente el valor de la libertad. Un adulto es libre de beber cerveza, pero no significa que la cerveza deba ser gratis.

Otro par de palabras que falsamente están emparentadas son "código abierto" y "código libre".

El "código fuente" o simplemente "código" de un programa, son instrucciones escritas para un computador. Estas instrucciones están escritas en un lenguaje de programación, que es legible por un humano entrenado (un programador), y al mismo tiempo automáticamente transformable ("compilable") en un lenguaje ejecutable por un computador.

Normalmente, los programas se distribuyen en este segundo lenguaje: ejecutable, que si bien especifica las mismas acciones que el código fuente, tiene un nivel de complejidad y detalle demasiado grande para ser usable por un humano en forma práctica, excepto para modificaciones triviales.

Algunos programas se distribuyen también acompañados del código fuente del programa, de forma tal que un programador puede leer y estudiar el código, y usarlo como inspiración (dentro de ciertos límites para evitar el plagio) para escribir el código de otros programas.

Programas de código libre

Un programa es de código libre si respeta ciertas condiciones que algunos (me incluyo) consideran esenciales:

  • 0. La libertad de usar el programa para lo que uno quiera
  • 1. La libertad de estudiar y modificar el código del programa
  • 2. La libertad de copiar el programa
  • 3. La libertad de distribuir versiones modificadas del programa

Las libertades 1 y 3 requieren obviamente que el código sea abierto, y si bien solamente una fracción de los usuarios tienen el interés y el entrenamiento para trabajar con código de programas, todos los demás usuarios pueden beneficiarse de esta libertad al permitirse la libre distribución de los programas modificados.

Código libre vs Código abierto

No todos los usuarios ni todos los desarrolladores de software libre están de acuerdo con que estas libertades sean primordiales. Siempre ha habido un grupo que prefiere el concepto de "código abierto", en principio para evitar la confusión en inglés de libre=gratis=free, pero también como una estrategia de marketing. La gente que insiste en la idea del código abierto por encima del código libre, busca convencer a una base amplia de los beneficios prácticos del código abierto, por ejemplo, como método para desarrollar software, sin tener que referirse a ideas de lo bueno o lo malo.

Todo el software libre es de código libre, y prácticamente todo el software que es de código abierto es de software libre también, así que en la práctica ambos "código abierto" y "código libre" describen prácticamente el mismo conjunto de programas. Sin embargo ...

[Código abierto y código libre] corresponden a posiciones basadas en valores fundamentalmente distintos. El código abierto es una metodología de desarrollo; el software libre es un movimiento social. Para el movimiento de código libre, el software libre es un imperativo ético, porque sólo el software libre respeta las libertades de los usuarios [...]

Nosotros en el movimiento del software libre no pensamos que la gente de código abierto sean nuestros enemigos; el enemigo es el software privativo (no-libre). Pero queremos que la gente sepa que estamos por la libertad, y no aceptamos ser identificados erróneamente como promotores del código abierto [Stallman, CACM Junio 2009]

La diferencia no es solamente de terminología, hay ideas muy distintas detrás. Para demostrarlo, hay una situación clave en el cual ambas concepciones entran en colisión, el DRM.

Bajo la presión de las disqueras y los estudios de cine, los programas para usuarios individuales están cada vez más diseñados específicamente para restringirlos. Estas restricciones se conocen como DRM, o Digital Restrictions Management [*], y son la antítesis en espíritu de la libertad que el software libre quiere proveer. Y no solamente en espíritu: dado que la meta del DRM es restringir tu libertad, el desarrollo de DRM hace difícil, imposible, o incluso ilegal, que modifiques el software que implementa el DRM.

Aún así, algunos que apoyan el código abierto han propuesto "DRM de código libre". Su idea es que publicando el código de los programas diseñados para restringir tu acceso a contenidos encriptados, y permitiendo que otros los modifiquen , producirán formas más poderosas y confiables de restringir a usuarios como tú. Entonces instalarán ese software en dispositivos que tú no podrás modificar [Stallman, CACM Junio 2009]

El DRM, una tecnología que restringe el uso de contenidos en computadores, consolas de juegos, reproductores de música/video digital, etc., muestra que es posible usar una metodología de código abierto para crear más restricciones, no más libertades.

El código libre es una opción ética

El concepto de código libre está basado en una concepción de cómo queremos que sean los programas que usamos. No tiene nada que ver con qué tan buenos sean esos programas, qué tan eficientes, qué tan robustos. Por supuesto, nos gusta que sean lo mejor posible, pero ese no es el punto principal para quien considera que estas 4 libertades enunciadas más arriba son necesarias.

Para una persona que apoya el código abierto, una alternativa que sea (por ahora) tecnológicamente superior, aunque sea privativa, es mejor. Para una persona de código libre, un software que restringe las libertades no es nunca una buena alternativa. No lo es ni siquiera desde una perspectiva utilitaria: el código libre es una forma de asegurar que las libertades de las que disfrutamos hoy sobre ciertos programas, sigan existiendo en el futuro.

Fuentes: Wikipedia: Código libre, R. Stallman: "Why Open Source Misses the Point of Free Software" (CACM June 2009, vol 2 no 6). Fotos: Jason Arend @ Flickr (CC), OCC4M @ Flickr (CC).

Foto de ChaTo

Carlos Castillo — Investigador en el área de minería de datos y búsqueda, en la web y redes sociales. Doctor en ciencias de la computación, Universidad de Chile. Más información »

2 Comentarios

Por simplicidad prefiero "código abierto"

En lo personal, prefiero usar el término "código abierto" no por temor a decir "libre", sino porque hay distintos grados de libertad entre licencia y licencia (ej: GPL vs EPL).

A veces cuando un producto de software está compuesto por múltiples licencias y me demoro más en validar que puedo decir "libre" con tranquilidad que simplemente decir "abierto" cubriendo el mínimo común denominador.