Free Software vs Open Source

Frecuentemente me encuentro con comentarios de algunos usuarios de software libre del tipo: “este programa es software libre, pero este otro en cambio es código abierto”, lo cual denota una clara confusión respecto a ambos conceptos. En la primera entrada realizada en este Blog, se hizo un esfuerzo por definir que es software libre y cuales son los alcances de la libertad a la que este nos da acceso; esta definición fue establecida por Richard Stallman, fundador del Movimiento del Software Libre en la década de 1980, sin embargo para 1998 no todos los miembros de la comunidad del software libre se sentían cómodos con esta definición, dado que pensaban que el enarbolar la bandera de la ética por encima de todas las cosas era un obstáculo para hacer del software libre un producto comercial en el que se interesaran las grandes empresas, por ello se separan ideológicamente del movimiento del software libre y comienzan a hacer uso del termino alternativo Open Source.

Al poco tiempo fue fundada la Open Source Initiative, y crearon una definición propia de las características que debe cumplir una licencia de software para que un programa sea considerado como código abierto, esta definición, la cual me tome la libertad de traducir al castellano (acá el texto original en ingles), indica que un programa es código abierto si cumple con los siguientes criterios:

  1. Libre redistribución: La licencia no debe restringir a nadie el vender o entregar el software como un componente de una distribución mayor que contiene programas de diferentes fuentes. La licencia no debe estipular el pago de regalías u otras comisiones para dicha venta.
  2. Código fuente: El programa debe incluir el código fuente, y se debe permitir su distribución en forma de código fuente, así como compilado. Cuando este sea distribuido sin el código fuente, debe existir un medio suficientemente publicitado de obtener el código fuente, preferiblemente por no más del costo razonable de reproducción, la descarga a través de Internet debe estar libre de cargo. El código fuente debe estar preferiblemente en la forma en que un programador  pueda modificar el programa. Código fuente deliberadamente ofuscado no está permitido. Las formas intermedias como la salida de un preprocesador o traductor no están permitidos.
  3. Trabajos derivados: La licencia debe permitir realizar modificaciones y trabajos derivados, así como la distribución de estas bajo los mismo términos de la licencia original.
  4. Integridad del código fuente del autor: La licencia puede restringir la distribución de código fuente modificado solo si la misma permite la distribución de archivos de revisión (patch files) a fin de modificar el programa durante la compilación. La licencia debe permitir explícitamente la distribución de software a partir de código fuente modificado. La licencia puede especificar que los trabajos derivados lleven un nombre o número de versión diferentes al del software original.
  5. No discriminar a personas o grupos: La licencia no debe discriminar a cualquier persona o grupo de personas.
  6. No discriminar campos de actividad: La licencia no debe restringir a nadie el uso del programa en campos de actividad específicos. Por ejemplo, no se puede restringir el uso del programa en un negocio, o que sea usado para investigación genética.
  7. Distribución de la licencia: Los derechos asociados al programa deben aplicar para todos aquellos a quienes se redistribuya el programa, sin necesidad de pedir una licencia adicional para estas partes.
  8. La licencia no debe ser especifica a un producto: Los derechos asociados al programa no deben depender de que este forme parte de una distribución de software particular. Si el programa es extraído de esa distribución y usado o distribuido dentro de los términos de la licencia del programa, todas las partes a las que el programa se redistribuya deben tener los mismos derechos concedidos con la distribución de software original.
  9. La licencia no debe restringir otro software: La licencia no debe imponer restricciones sobre otro software que se distribuye junto con el software licenciado. Por ejemplo, la licencia no debe insistir en que todos los demás programas distribuidos en el mismo medio deben ser software de código abierto.
  10. La licencia debe ser tecnológicamente neutral: Ninguna disposición de la licencia puede basarse en una tecnología o estilo de interfaz.

Es sencillo observar que ninguno de estos diez criterios entra en conflicto con las cuatro libertades que definen a un programa libre, por lo tanto, cualquier programa que pueda ser considerado de código abierto puede a su vez ser considerado software libre. De hecho, Linus Torvalds, quien es el creador del núcleo Linux además de uno de los miembros fundadores de la Open Source Initiative, publica su núcleo bajo la licencia GPLv2, de la cual Richard Stallman es autor.

Sin embargo, si una cosa si queda clara al leer la definición de open source, es que se trata de un enfoque desde la perspectiva del desarrollador del software, en el que más que criterios se establece la forma en que un programa a de ser distribuido, si es que se desea que este sea código abierto, mientras que por el otro lado, en el concepto de software libre se hace hincapié en el respeto a las libertades que el usuario del programa debe tener. ¿Existe realmente alguna diferencia importante en ambos enfoques? ¿Existe una ventaja real de uno respecto al otro? En la próxima entrega intentare dar respuesta a estas cuestiones.

Anuncios

Acerca de Henry D. Sierra R.

Buscador de la Verdad, Ingeniero Electrónico y entusiasta del Software Libre.
Esta entrada fue publicada en Software libre. Guarda el enlace permanente.

Una respuesta a Free Software vs Open Source

  1. Clara y precisa la información.
    Buena contribución.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s