Open source: el software con código fuente abierto
El software open source o de código abierto es mucho más que un simple software accesible al público y que puede ser aprovechado, copiado y modificado por terceros. En el transcurso de las últimas décadas, el código abierto también se ha convertido en un estilo de trabajo y un movimiento colectivo de resolución de problemas. Sin embargo, al tratarse de un modelo de producción descentralizado, depende de la revisión por pares (procedimiento de control de calidad independiente) y de la contribución de las comunidades de programadores. El trabajo colaborativo es una de las principales características del software abierto. En este artículo definimos el término open source y comparamos el software abierto y libre frente al software de código cerrado.
¿Qué es el código abierto?
El origen del código abierto se encuentra en el concepto del open source software, abreviado OSS por sus siglas en inglés. En este tipo de software, el código fuente es público y está disponible para ser modificado: tanto programadores como usuarios pueden adaptarlo y distribuirlo. En comparación con el software propietario, la adquisición de productos de código abierto es más flexible y económica, puesto que el producto no tiene propietario concreto ni pertenece a una empresa. En su lugar, cuenta con una gran comunidad de desarrolladores que mejora el producto gracias a una colaboración continua. En algunos casos, algunas organizaciones o empresas se unen para llevar a cabo proyectos de código abierto y así ahorrar en costes de desarrollo.
Este modelo de producción en el área del desarrollo de software no es ninguna novedad: el código abierto es tan antiguo como el propio Internet. Ya en los años 50 y 60 se desarrollaron los primeros protocolos de red de telecomunicación en un entorno abierto. La red ARPANET (Red de Agencias de Proyectos de Investigación Avanzada) sentó las bases del Internet moderno y se basaba, igual que el software de código abierto actual, en el trabajo colaborativo y la revisión por pares. El movimiento hacker de los años 70 y el movimiento de software libre en los años 80 afianzaron la idea del intercambio libre de conocimientos en el desarrollo de software. En la actualidad, el concepto de código abierto no solo describe el software en sí, sino también una actitud de colaboración en el mundo de las tecnologías.
Este modelo de producción en el área del desarrollo de software no es ninguna novedad: el código abierto es tan antiguo como el propio Internet. Ya en los años 50 y 60 se desarrollaron los primeros protocolos de red de telecomunicación en un entorno abierto. La red ARPANET (Red de Agencias de Proyectos de Investigación Avanzada) sentó las bases del Internet moderno y se basaba, igual que el software de código abierto actual, en el trabajo colaborativo y la revisión por pares. El movimiento hacker de los años 70 y el movimiento de software libre en los años 80 afianzaron la idea del intercambio libre de conocimientos en el desarrollo de software. En la actualidad, el concepto de código abierto no solo describe el software en sí, sino también una actitud de colaboración en el mundo de las tecnologías.
Open source: el concepto de open source es el principio central del software de código abierto. Se trata de software a cuyo código fuente se puede acceder libremente para modificarlo o copiarlo. En el concepto de código abierto descentralizado arraiga una idea de colectividad: la colaboración de una gran comunidad de desarrolladores que soluciona, mantiene y mejora el producto para todos los usuarios a través del libre intercambio de conocimientos.
¿En qué se diferencian el software libre abierto y el software cerrado?
Antes de que se asentara el concepto de código abierto, los modelos de software accesibles al público recibían el nombre de software libre (free software). Esta denominación se le atribuye especialmente al proyecto GNU, un sistema operativo que se creó durante el movimiento de software libre y que pretendía garantizar a los usuarios finales la máxima libertad en el uso del código fuente. Con él, el concepto de software libre se contraponía directamente al software propietario o software cerrado, en el cual únicamente el propietario registrado (la empresa) está autorizado a acceder al código fuente y a modificarlo o distribuirlo. Los usuarios, en cambio, solo pueden utilizar el software de acuerdo con su fin establecido y, por lo general, previo pago.
Precisamente esta denominación inicial en inglés, free software, fue la que llevó a confusión, pues la palabra free no solo significa libre, sino también gratis. No obstante, el concepto se refería únicamente a las libertades de los usuarios y no a su gratuidad ni a ningún carácter comunitario. Como sucede con las licencias Creative Commons, en el software de código abierto no todo está permitido: los usuarios están sujetos a ciertas condiciones. Para alejar el foco de la idea comercial y desviarlo hacia la utilización libre, en 1998 el Foresight Institute acuñó el término open source, que significa literalmente fuente abierta, es decir, software de código abierto.
Precisamente esta denominación inicial en inglés, free software, fue la que llevó a confusión, pues la palabra free no solo significa libre, sino también gratis. No obstante, el concepto se refería únicamente a las libertades de los usuarios y no a su gratuidad ni a ningún carácter comunitario. Como sucede con las licencias Creative Commons, en el software de código abierto no todo está permitido: los usuarios están sujetos a ciertas condiciones. Para alejar el foco de la idea comercial y desviarlo hacia la utilización libre, en 1998 el Foresight Institute acuñó el término open source, que significa literalmente fuente abierta, es decir, software de código abierto.
El software de código abierto no es lo mismo que el software de dominio público, a menudo llamado freeware o software gratuito. Puesto que las designaciones no permiten deducir claramente el significado de cada uno, pueden darse confusiones entre los dos tipos de software.
Consideraciones respecto al código abierto
Sobre todo en las fases iniciales, las empresas se mostraban escépticas respecto a la utilización de software de código abierto. Por un lado, no querían volverse vulnerables en materia de licencias, y por otro, temían tener que exponer partes de su propio software. Actualmente, la mayoría de estos prejuicios ha desaparecido y muchas grandes empresas apuestan por soluciones de código abierto. Para poder contar con un espectro de desarrolladores lo más amplio posible a nivel mundial, se han creado diferentes modelos de licencia. Por lo general, la mayor parte de sus disposiciones tienen que ver con la obligación de los usuarios en relación con la documentación y la publicación de la utilización de proyectos de código abierto.
Antes de decidirte por componentes de código abierto, comprueba las condiciones de sus licencias. Para evitar problemas legales es importante utilizar siempre los componentes de acuerdo con las mismas y asegurarse de documentar su aplicación. Además, debes estar dispuesto a publicar tus herramientas y códigos fuente si te lo pidiesen. Las plataformas de desarrolladores como GitHub, que se usan para la gestión de versiones de proyectos de desarrollo de software, y las herramientas de licencia facilitan considerablemente el trabajo con software de código abierto. A menudo te permiten crear una lista de componentes de software con la que tener bajo control los tipos de licencia de cada componente que estés utilizando.
Antes de decidirte por componentes de código abierto, comprueba las condiciones de sus licencias. Para evitar problemas legales es importante utilizar siempre los componentes de acuerdo con las mismas y asegurarse de documentar su aplicación. Además, debes estar dispuesto a publicar tus herramientas y códigos fuente si te lo pidiesen. Las plataformas de desarrolladores como GitHub, que se usan para la gestión de versiones de proyectos de desarrollo de software, y las herramientas de licencia facilitan considerablemente el trabajo con software de código abierto. A menudo te permiten crear una lista de componentes de software con la que tener bajo control los tipos de licencia de cada componente que estés utilizando.
Ejemplos de software de código abierto
Probablemente sin ser conscientes de ello, la mayoría de los usuarios de Internet utiliza con regularidad software divulgado como código abierto. A continuación, presentamos tres proyectos de fuente abierta conocidos a nivel mundial y que han influido en gran medida el movimiento OS.
PHP: este lenguaje de programación se desarrolló para crear sitios web dinámicos. Desde su aparición en 1995, se considera uno de los lenguajes de programación más utilizados en todo el mundo. PHP ofrece a aplicaciones como Slack o Spotify una gran flexibilidad en lo referente al soporte de bases de datos y a la integración en protocolos de Internet.
Mozilla Firefox: este navegador web de libre configuración ofrece una amplia selección de plug-ins y es uno de los tres clientes-web más utilizados a nivel mundial. Llegó al mercado en 2002 y revolucionó la industria tecnológica con su concepto abierto. De acuerdo con el sitio web de medios multimedia estadounidense CNET, Mozilla Firefox tuvo un papel clave en la difusión del código abierto.
WordPress: este sistema de gestión de contenidos gratuito existe desde 2003 y desde entonces no ha dejado de perfeccionarse. WordPress se basa en el lenguaje de programación de código abierto PHP y se desarrolló inicialmente para crear y gestionar weblogs. Gracias a la integración de plug-ins externos, este CMS ofrece a los usuarios muchas posibilidades de configuración con el mínimo esfuerzo. Hoy, WordPress es uno de los sistemas de gestión de contenidos más conocidos y más utilizados en el mundo.
PHP: este lenguaje de programación se desarrolló para crear sitios web dinámicos. Desde su aparición en 1995, se considera uno de los lenguajes de programación más utilizados en todo el mundo. PHP ofrece a aplicaciones como Slack o Spotify una gran flexibilidad en lo referente al soporte de bases de datos y a la integración en protocolos de Internet.
Mozilla Firefox: este navegador web de libre configuración ofrece una amplia selección de plug-ins y es uno de los tres clientes-web más utilizados a nivel mundial. Llegó al mercado en 2002 y revolucionó la industria tecnológica con su concepto abierto. De acuerdo con el sitio web de medios multimedia estadounidense CNET, Mozilla Firefox tuvo un papel clave en la difusión del código abierto.
WordPress: este sistema de gestión de contenidos gratuito existe desde 2003 y desde entonces no ha dejado de perfeccionarse. WordPress se basa en el lenguaje de programación de código abierto PHP y se desarrolló inicialmente para crear y gestionar weblogs. Gracias a la integración de plug-ins externos, este CMS ofrece a los usuarios muchas posibilidades de configuración con el mínimo esfuerzo. Hoy, WordPress es uno de los sistemas de gestión de contenidos más conocidos y más utilizados en el mundo.
Ventajas y desventajas del software de código abierto
Son muchos los argumentos a favor de utilizar software de código abierto. No obstante, no hay que olvidar algunos riesgos asociados a su uso y que se deben considerar antes de tomar una decisión. Sopesa las siguientes ventajas y desventajas del código abierto para saber si este modelo de software es adecuado para ti.
Ventajas:
Ventajas:
- Bajos costes de adquisición: el código fuente de este tipo de software está disponible para los usuarios de manera gratuita, con lo que no hay gastos de adquisición.
- Fiabilidad: el hecho de que una comunidad entera de desarrolladores se encargue de mejorar el producto le añade una fiabilidad mayor que la del software propietario.
- Durabilidad: el software de código abierto no caduca porque no depende del éxito de un solo proveedor cuyo servicio fallaría, por ejemplo, si la empresa se disolviese.
- Seguridad: la comunidad de desarrolladores identifica errores y brechas de seguridad en cuanto aparecen y los solventan rápidamente.
- Flexibilidad: el código abierto asegura a los usuarios una gran flexibilidad, ya que el software se adapta a las necesidades individuales sin necesidad del consentimiento de un proveedor.
- Costes a largo plazo: en los proyectos de código abierto pueden darse ciertos costes derivados de, por ejemplo, la capacitación de empleados o la resolución externa de problemas.
- Soporte: mientras que los servicios de atención al cliente para resolver problemas están incluidos en el software propietario, los usuarios de OSS no cuentan con esta asistencia.
- Usabilidad: el software de código abierto está orientado a desarrolladores y su configuración requiere ciertos conocimientos técnicos.
- Abandono: aunque la mayoría de los proyectos de código abierto son duraderos, puede darse el caso de que la comunidad de desarrolladores pierda el interés por el proyecto.
- Seguridad: por lo general, el uso de proyectos de código abierto es seguro. Aun así, no hay que olvidar que se desarrollan en un entorno no controlado en el que el malware no se puede descartar.
En vista de las muchas ventajas, no es de extrañar que el concepto de código abierto se haya impuesto en las últimas décadas. Gracias a las herramientas adecuadas y al compromiso que ofrece este modelo, los usuarios de código abierto se benefician de sus ventajas y, al mismo tiempo, forman parte de un movimiento digital global que apuesta por la creación colectiva.