¿Cuál es la diferencia entre el código abierto y el software libre?

Cuando se trata de licencias de software, los dos términos son en gran medida intercambiables, ya que (con algunas excepciones) utilizan las mismas licencias de software subyacentes.

Sin embargo... hay diferencias en los valores subyacentes.

El "software libre" - como lo describe Richard Stallman significa software que le da a usted (el destinatario/usuario del software) libertad. Esto se expresa en la Licencia Pública General de GNU, que impide que el código fuente sea "bloqueado", y por lo tanto afecte a la libertad de los futuros usuarios.

El foco está en la libertad del usuario, y en permitir que la libertad se propague. El código no es lo principal. Esto se expresa en las libertades de la GPL de GNU: No sólo se permite al usuario el acceso completo al código fuente, sino que también se le permite modificarlo y redistribuirlo, siempre y cuando el receptor reciba los mismos derechos. La libertad puede extenderse!

El Código Abierto es posiblemente una dilución del concepto de Software Libre: El movimiento Open Source adopta una actitud (en gran medida) pragmática: La licencia del software fomenta la cooperación, permitiendo que todos se beneficien, sin centrarse en la libertad del usuario. Estos tipos tienden a centrarse en el software.

Por lo tanto, es el software el que es "abierto". No el usuario que es "libre". Sutil diferencia de énfasis.

El proyecto GNU describe esto mucho mejor de lo que yo podría.

La diferencia entre el Software Libre y el Código Abierto también es visible en las licencias: La licencia BSD de 3 cláusulas se considera una licencia de Código Abierto. Pero de ninguna manera sería considerada apropiada por la gente del Software Libre: No hay ningún requisito para "pasar" el código fuente: Los usuarios no están en mejor situación que si ejecutaran software propietario.

Como sucede, este es exactamente el tipo de Código Abierto que les gusta a las empresas - les permite incorporar software con licencia BSD en sus productos (¡como obtener cosas gratis!) - por ejemplo, la pila TCP de Windows comenzó como una copia de la pila TCP de Unix BSD - que resultó tener licencia BSD.

Microsoft no podría haber hecho esto si la pila TCP estuviera bajo la GPL de GNU: Entonces estarían obligados a obedecer esa licencia - y publicar el código fuente de Windows sería impensable. Así que eligieron la licencia BSD en su lugar.

Descargo de responsabilidad: puede que haya generalizado un poco en lo anterior, pero espero que se entienda el punto sobre las sutiles diferencias.