Cuando trabajamos a nivel particular con ciertos programas tecnológicos, es posible que nos olvidemos o simplemente nunca hayamos mostrado particular interés en cómo se desarrolla el sistema de licenciamiento que cubre y protege la propiedad intelectual del software.
La cuestión es que hace varias décadas todo el software era propietario, y términos como software libre o código abierto eran totalmente impensables. Esto fue así hasta que llegó la Free Software Foundation (FSF), una fundación de la mano de Richard Stallman para cambiar esto y ofrecer una nueva visión que explicaría qué es el software de código abierto y las ventajas que supondría para la industria.
Pero aunque el software de código abierto simboliza un conjunto de software bastante amplio, que incluye al software libre, esta relación no es recíproca, dado que no todo el software de código abierto es libre.
¿Qué es el software de código abierto y en qué se diferencia del software libre?
Como decíamos, el software de código abierto, también denominado “open source”, engloba a todos aquellos programas que ofrecen su código al público libremente para su visualización y otro tipo de acciones, pero salvo que indique lo contrario, solo a nivel privado. Esta es la principal faceta que lo diferencia de una rama del código abierto, que ofrece unos mayores criterios de libertad para hacer lo que convenga con el código.
En el caso del software libre, no solo se puede acceder al código fuente, sino que también es posible modificarlo, distribuirlo e incluso comercializar las modificaciones, siempre y cuando adjuntemos el trabajo original con su correspondiente licencia libre.
En cambio, el software de código abierto puede no permitir la comercialización ni siquiera de las modificaciones sobre el código, o simplemente la distribución de dichas alteraciones.
Descubriendo las características del software de código abierto
Lo cierto es que la definición de código abierto ha ido mutando a lo largo del tiempo y ha sido difícil sacar una versión oficial que reúna todas las propuestas que han girado entorno a su concepción. Llegado el momento, la iniciativa del código abierto (OSI) propuso una definición denominada “Open Source Definition” que explicaría cuáles son las características del software de código abierto para que así pudiera ser considerado:
- El código, como es obvio, tendría que estar disponible y debería permitir su distribución.
- Las modificaciones podrían ser distribuidas, y como mínimo tendrían que ofrecer el mismo nivel de licencia que la licencia original.
- Posibilidad de redistribuir tanto gratuita como comercialmente el software.
- Es importante mencionar la fuente de la creación del código original. Esto es algo que se ha perpetuado en todas las licencias de código libre como algo imprescindible, para al menos, conservar cierto respeto al autor original.
- Así mismo, los datos de la licencia deberían distribuirse junto al código (para que al final la licencia no se pierda entre pase y pase).
- Neutralidad general: no se puede prohibir el uso del software en ninguno de los sentidos, incluyendo grupos de personas o personas en particular, aplicaciones específicas, forzosas tecnologías específicas para su uso, etc…
Ventajas del código abierto
Las ventajas del código abierto son numerosas, tanto para el que lo ofrece como para el que lo recibe. En esto se sustenta toda la filosofía que llevó a cabo la FSF y lleva predicando durante tanto tiempo.
Por citar algunas de las más relevantes, podemos encontrar las dos siguientes:
- El tema de los costes de las licencias: siempre suele salir en todas partes cuando hablamos tanto de código abierto como de software libre. Esto, obviamente, es algo importante, especialmente para empresas, que suelen tener unos gastos muy altos en esta faceta y el código abierto puede representar una solución.
- Calidad del software superior: aunque esto no sea siempre cierto, los grandes proyectos open source suelen ofrecer una calidad muy superior en términos cuantitativos. Esto significa que suelen ser más seguros, más estables, más escalables y generalmente aportan un mayor rendimiento. Por citar ejemplos de escalabilidad, seguridad y estabilidad, la mayoría de los servidores web que existen hoy en día se fundamentan en un sistema Open Source, como Apache o Nginx. Por otro lado, los 10 super-ordenadores más potentes del mundo usan Linux, un sistema operativo de código abierto.