¿Qué es open source o código abierto?

10min

El código abierto es un estilo de trabajo para la creación de software, pero también una filosofía y uno de los motores de la informática más importantes de la actualidad. Pero no todo el software libre es igual. En este post vamos a conocer este movimiento más de cerca, con sus características y los medios utilizados para producir y mejorar constantemente las aplicaciones open source.

Índice

¿Qué es open source?

Open source es un tipo de software cuyo código fuente está publicado y por tanto, es accesible para las personas de manera general. Además de «open source», también se utilizan los términos código abierto o código libre. Básicamente son sinónimos, aunque puede haber diferentes matices en las licencias que vamos a analizar. En cualquier caso, gracias al open source existe la posibilidad de ver el código de las aplicaciones, incluso modificar y en ocasiones distribuir de manera libre.

Características clave del software de código abierto

Las características más importantes que encontramos en el modelo open source son las siguientes:

  • Accesibilidad: el código fuente es accesible para cualquier persona que quiera verlo.
  • Libertad: existe la posibilidad de hacer cualquier cosa con el código, como modificar los programas, usarlos en cualquier ámbito e incluso distribuirlos.
  • Colaboración: el código abierto se desarrolla con el apoyo de la comunidad, que realiza sus aportes ya sea a la hora de crear nuevas funcionalidades, corregir las existentes, etc.

Beneficios y ventajas del open source

El código abierto es un modelo de producción de software que beneficia a todos los sectores de la industria informática, desde los usuarios a las empresas, pero también es una manera de permitir un conocimiento más libre y un avance de la tecnología al alcance de todas las personas y los desarrolladores.

Libertad de uso, modificación y distribución

Open source proporciona la libertad de usar el software para cualquier propósito. Sin embargo, como decimos, esto puede tener matices dependiendo de la licencia adoptada por cada programa. Además, los desarrolladores tienen la libertad de modificarlo según las necesidades individuales y, finalmente distribuirlo incluso la licencia en muchas ocasiones permite la creación de productos derivados que podrían o no ser comercializados.

Comunidad global y colaboración en el desarrollo

Una de las mayores fortalezas de los proyectos open source es la comunidad global que hay detrás de ellos. Esa comunidad hace que los proyectos de código abierto tengan mucha fortaleza, ya que gozan de la ventaja de obtener aportaciones por equipos amplios que se pueden renovar a medida que el proyecto también avanza. Esta comunidad colabora en el desarrollo, pero también sirve para probar los programas, detectar fallos y corregirlos, sugerir mejoras, etc. Todo ello permite una evolución continua del software.

Seguridad y transparencia en el código fuente

Al ser de código abierto, es posible revisar y auditar el código por las personas que lo puedan requerir. Esta transparencia supone un mayor control sobre aspectos como la seguridad. Si bien es cierto que al estar el código publicado es potencialmente más fácil encontrar fallos de seguridad, la comunidad dentro del proyecto tiene la oportunidad de corregir las vulnerabilidades detectadas de manera rápida.

Costos y ahorro en licencias

Por último, pero no menos importante, debemos destacar el ahorro en las empresas y usuarios que confían en el software de código abierto. Código abierto no es siempre sinónimo de software gratuito, pero en la mayoría de los casos sí es así y por ello puede resultar en un significativo ahorro en licencias en comparación con las alternativas de código propietario.

Cómo funciona el desarrollo de open source

Los proyectos open source tienen un modelo de trabajo similar al del software de código propietario. Sin embargo hay algunos factores que lo caracterizan especialmente y debemos destacar.

Colaboración comunitaria en el desarrollo

El desarrollo de los proyectos de software open source se realiza en comunidad, mediante aportaciones de personas de todo el mundo. Gracias a ello, este movimiento ha supuesto un gran avance para la creación de multitud de herramientas que existen en la actualidad para el desarrollo y gestión de los proyectos. Un ejemplo de ellas es Git, el sistema de control de versiones.

Acceso público al código fuente

Para el desarrollo de proyectos de open source se utilizan repositorios de código públicos, donde los desarrolladores pueden publicar cambios y sincronizar los proyectos que tienen en local, descargando las actualizaciones publicadas por otros integrantes de la comunidad. El lugar más conocido para la gestión de los proyectos de código abierto es GitHub que consiste en un servicio de alojamiento de repositorios manejados por Git.

Licenciamiento y distribución

Este punto es de vital importancia para los proyectos de código abierto, ya que existen multitud de licencias específicas que permiten o no determinados usos del software. Algunas licencias muy populares son GPL, MIT o Apache. Incluso hay proyectos de código abierto que tienen licencias duales (gratuitas para el uso de la comunidad y de pago para un uso comercial). Un ejemplo típico de uso de licencia dual es MySQL.

Es importante conocer cuáles son las reglas de uso, modificación y distribución de la licencia de cada proyecto. Por ejemplo, hay licencias que permiten la realización de cualquier tipo de modificación sobre el software o la  creación de productos derivados y otras que no. También existen licencias que  indican que los productos derivados deben de ser también open source.

Diferencias entre software libre, open source y código cerrado

Aunque en muchos casos saltan a la vista, vamos a nombrar aquí algunas diferencias entre el código libre y el código propietario.

Concepto de software libre

  • Open source: asegura a los usuarios la libertad para ejecutar, estudiar, redistribuir y modificar el software. 
  • Código propietario: no permite ver el código fuente o redistribuir los programas.

En este punto conviene insistir que el software libre es libre por la libertad que permite el uso del código de las piezas de software, pero no por el precio que pueda tener su uso, porque no todo producto open source es siempre gratuito.

Filosofía y principios del movimiento open source

Podemos distinguir entre:

  • Open source: se mueve por un principio de compartir conocimiento y hacer que la tecnología esté al alcance de todos.
  • Código propietario: se mueve por intereses comerciales.

Limitaciones y propiedad en el software de código cerrado

Aquí la clave es tener claro que:

  • Open source: los proyectos pertenecen a la comunidad y por tanto, las limitaciones las impone la propia comunidad. 
  • Código propietario: la propiedad del software es de la empresa o profesional que lo ha desarrollado. En estos casos la distribución o modificación no se puede realizar sin el permiso explícito del titular de los derechos.

Ejemplos prácticos y casos de éxito

Existen infinidad de proyectos de código abierto que usamos en el día a día, incluso más de los que podamos pensar, porque muchas veces ni siquiera se trata de programas de consumo, sino de librerías o frameworks sobre los que se construyen también las aplicaciones comerciales. No obstante aquí vemos algunos de los ejemplos más representativos.

Sistemas operativos open source (Linux)

GNU/Linux es sin duda uno de los proyectos de código abierto más importantes a todos los niveles. Consiste en toda una familia de sistemas operativos que se pueden usar tanto por usuarios de ordenadores personales como por servidores. Además, es la base sobre la que funcionan otros sistemas operativos especialmente populares como Android.

Herramientas de desarrollo y lenguajes de programación

Otra de las áreas donde encontramos innumerables ejemplos de software libre son las herramientas de desarrollo. Esto incluye lenguajes como Python o PHP, bases de datos como MySQL, PostreSQL, SQLite, o CMS como WordPress o Joomla! y mucho más.

Mitos y realidades del código abierto

Quienes conocen de cerca el mundo del open source quizás tengan una idea exacta sobre su naturaleza, sin embargo, en ambientes menos especializados, existen a veces algunos mitos o falsas verdades, que infelizmente dañan la imagen del movimiento del software libre.

Percepciones equivocadas sobre la calidad del software

Que algo sea gratuito no significa que tenga que ser malo, o no tener una calidad igualmente cuidada que el software propietario. Por supuesto que hay programas buenos y malos en todas partes, pero que sean o no open source no quiere decir que sean ni mejores ni peores. Hay programas open source excelentes que están a años luz de sus contrapartidas comerciales.

Mitos sobre la seguridad y el soporte técnico

A veces se piensa equivocadamente que porque el software tiene el código publicado pueda ser más inseguro o que los atacantes puedan ser capaces de encontrar más fácilmente vulnerabilidades. En realidad no es así. El software libre tiene una enorme comunidad de desarrolladores y colaboradores con muchísima experiencia en seguridad que son capaces de identificar los problemas incluso comparativamente antes que ocurre con el software comercial. Además, la comunidad es capaz de reaccionar antes cuando se detecta un fallo y corregir las vulnerabilidades que puedan aparecer.

En lo que respecta al soporte técnico, también lo podemos obtener con software libre. Las empresas que ofrecen software propietario disponen de líneas de atención a sus usuarios, y esto no ocurre siempre con el software libre, pero no por ello quiere decir que no podamos obtener soporte técnico. Existen muchos productos de software libre que ofrecen planes de soporte y financian la mejora de sus productos mediante el cobro del soporte prestado. Pero incluso aunque los propios creadores de los proyectos open source no ofrezcan soporte directamente, siempre podemos encontrar profesionales que sí están dispuestos a ayudarnos. También debemos saber que la comunidad de usuarios del software libre es muy prestativa y suele ofrecer respuestas a los problemas frecuentes.

Realidades sobre la flexibilidad y adaptabilidad

Los programas de código abierto son muy flexibles, al menos la mayoría de los más conocidos y gracias a la libertad de modificación cualquier equipo con los conocimientos necesarios puede adaptarlo a cualquier necesidad nueva.

En definitiva, acercarse al movimiento del software libre puede aportar muchas ventajas a las empresas o usuarios. No se trata solamente de ahorro de costes. En realidad, el software libre está en muchas ocasiones a la par, o son superiores en calidad, que las alternativas comerciales.

Fernán García de Zúñiga

Productos relacionados: