Código abierto

¿Qué es el código abierto?

El código abierto es software que se crea y distribuye para que multitud de equipos y desarrolladores puedan modificar y aportar libremente nuevas características o revisiones para su desarrollo y actualización continua.

¿En qué se diferencia el código abierto de otros modelos?

Cuando los desarrolladores crean, lanzan y actualizan software de código abierto, la finalidad de su diseño consiste en que la comunidad de desarrolladores en su conjunto pueda contribuir a su progreso continuado. El código fuente del software se encuentra disponible libremente en su forma no compilada. Ello permite la contribución a su evolución o modificación de aquellos que deseen aportar su capacitación.

Soluciones, productos o servicios relacionados de HPE

¿Qué expectativas rodean al código abierto?

Otra característica del código abierto es que los usuarios pueden crear versiones que se ejecutarán en distintos sistemas operativos o entornos en línea. La única expectativa del software de código abierto consiste en que aquellos que contribuyan a él pongan sus actualizaciones a disposición de los demás.

Temas relacionados

Historia del código abierto

El software de código abierto cuenta con varias décadas más de antigüedad que los títulos comercialmente disponibles. Sus orígenes se remontan al sistema de compilador A-2 de 1953. La filosofía predominante hasta la década de los años 70 se basaba en que el bien en sí lo constituía el hardware, no los programas creados y cargados en él. Con el lanzamiento del software disponible comercialmente (a menudo, líneas de texto impresas adquiridas por correo postal), el código abierto se mantuvo como una mentalidad prevaleciente para equipos comerciales, académicos y de aficionados.

Distribuido por primera vez por AT&T a principios de los años 70, el sistema operativo UNIX constituye un ejemplo muy conocido de esta filosofía. Más tarde se lanzarían versiones de UNIX comerciales, propietarias y de código cerrado, aunque se crearía y distribuiría software para UNIX bajo el proyecto GNU, que se creó en 1983. En 1991, el nuevo kernel de código abierto gratuito LINUX, llamado así por su creador, Linus Torvalds, se convirtió rápidamente en un estándar prácticamente universal, que todavía perdura.

La Open Software Foundation se formó en 1988 como un grupo sin ánimo de lucro para crear y mantener un estándar para el desarrollo de UNIX. Desde entonces, se ha fusionado con X/Open para convertirse en The Open Group. Con casi 1000 miembros, que representan a una completa variedad de fabricantes de hardware y desarrolladores de software, The Open Group brinda certificaciones profesionales y mantiene numerosos estándares, como Single UNIX Specification (SUS) y el estándar Open Agile Architecture.

¿Cuáles son las ventajas del modelo de código abierto?

A nivel empresarial, el desarrollo del código abierto presenta numerosas ventajas de las que disfrutan los profesionales, usuarios y desarrolladores de TI. La velocidad y agilidad de la implementación de las solicitudes de características, la capacidad de escalar verticalmente con facilidad y las eficiencias de costes proporcionan enormes ventajas.

El modelo de desarrollo del código abierto resulta muy parecido a la propia nube. Las revisiones y características se pueden distribuir entre numerosos desarrolladores o equipos, además de validarse y compilarse por otros tantos. Existe una cantidad de recursos disponibles flexible y pueden añadirse más equipos cuando se estime necesario. Numerosos ejemplos de software de código abierto empiezan con un pequeño grupo que evoluciona hasta que una comunidad cada vez mayor contribuye a su desarrollo continuado.

Esto también atrae al talento de máximo nivel, que puede crear soluciones diferentes o nuevas como respuesta a los desafíos del desarrollo. Los grupos que trabajan en el mantenimiento de software de código abierto no tienen que esperar a que un proveedor proporcione revisiones o nuevas capacidades. Pueden crearlas por sí mismos.

El software de código abierto también brinda eficiencias de costes y ventajas considerables. La mayoría del software se distribuye de forma gratuita. La inversión de tiempo y dinero necesaria para el desarrollo continuado del código abierto se comparte por toda la comunidad. La dependencia del proveedor deja de representar un problema, puesto que los usuarios no se encuentran contractualmente vinculados con un tercero.

Probablemente, la mayor ventaja la representa que una empresa puede moverse realmente a la velocidad de la innovación. Con costes mejor controlados, implementaciones y desarrollo más rápidos, y la capacidad efectiva de compartir entre muchos el mantenimiento continuado, las ventajas del software de código abierto resultan obvias.

Software libre vs. software de código cerrado vs. software de código abierto

Prácticamente todo el software disponible hoy en día, ya sea comercialmente o del dominio público, puede clasificarse dentro de una de estas tres definiciones. La definición de software de «código cerrado» resulta probablemente la más sencilla de interpretar, dado que las expresiones «libre» y de «código abierto» en ocasiones se utilizan indistintamente a pesar de presentar algunas diferencias fundamentales. Con tanta confusión entre las dos, a menudo se emplea el término FOSS (software libre y de código abierto) para describir software que resulta tanto libre como de código abierto.

Software de código cerrado

El software de código cerrado suele cifrarse y compilarse en un formato protegido. Se entrega bajo el acuerdo explícito de que el código fuente no se puede descompilar, modificar, recompilar ni redistribuir sin una autorización expresa. Un ejemplo excelente de software de código cerrado son los sistemas operativos informáticos, como Microsoft Windows o Mac OS de Apple. Se consideran la propiedad intelectual de sus desarrolladores y ambas empresas han realizado esfuerzos considerables para proteger su trabajo.

Software libre

El software libre se distribuye bajo la definición de presentar «cuatro libertades esenciales», según lo define la Free Software Foundation. Dichas libertades se refieren a que puedes ejecutar el software como desees para cualquier finalidad, estudiar o cambiar el código fuente, redistribuir el software original y redistribuir tu versión modificada. A pesar de su nombre, «libre» se refiere a estas cuatro libertades y no a su precio; existen numerosos ejemplos de títulos de software libre que se comercializan en el mercado.

Software de código abierto

El software de código abierto recae bajo las definiciones establecidas por la Open Source Initiative, creada a finales de los años 90 para abordar lo que la comunidad de desarrolladores entendía como limitaciones del software de código libre. Como se ha indicado anteriormente, el código abierto es tanto una filosofía de desarrolladores como la licencia que otorga a otros usuarios. La Open Source Initiative declara que el software se puede distribuir de forma gratuita, que el código fuente se encuentra disponible públicamente, que puede modificarse y distribuirse en un formato diferente, que no discrimina por personas o grupos y que no restringe de ningún modo el uso de otro software.

¿Qué es el modelo de desarrollo de código abierto?

El modelo de desarrollo de código abierto se define por los procesos y valores que lo diferencian del modelo tradicional, incluso cuando las organizaciones de desarrollo tradicionales se encuentran adoptando cada vez en mayor medida el modelo de código abierto. El énfasis del desarrollo del código abierto se centra en la colaboración, la revisión por expertos homólogos y la filosofía de «publicar temprano, publicar a menudo», que permite actualizaciones más frecuentes.

El proceso de solicitud de características con el desarrollo de código abierto resulta constante. Cuando se sugieren características, revisiones y actualizaciones, el proceso de solicitud de características del modelo de código abierto expone que estas se debaten y validan en grupo antes de su diseño e implementación. Cuando se compila una nueva versión, se comparte a través de la comunidad como versión alfa para someterla a pruebas, obtener comentarios y recibir observaciones adicionales.

Un principio fundamental del modelo de código abierto es que varias personas o pequeños grupos comparten la responsabilidad de la creación y el mantenimiento del código fuente. Estas actualizaciones se comparten entre varios grupos para que prueben y validen el código, con total transparencia entre ellos. Una vez que un proyecto se encuentra listo para su implementación, el código se pasa al responsable de mantenimiento o director del software, quien se encarga de garantizar que todo el código enviado satisfaga los estándares del proyecto.

¿Cómo se aplican las soluciones de software de código abierto?

Se ha producido una migración prácticamente en masa hacia la adopción del software de código abierto, que se refleja en que un 95 % de las empresas de TI lo emplea para la modernización de la infraestructura, el desarrollo de las aplicaciones y DevOps.

Por poner un ejemplo, el sistema operativo LINUX representa una ilustración perfecta del modelo de código abierto; y no solo el entorno en sí, sino también los cientos de aplicaciones de código abierto que se han diseñado para ejecutarse en él. Y no representa el único ejemplo de infraestructura: Xen, KVM y OpenStack se basan también en el código abierto.

Para el Big Data, la plataforma Hadoop de Apache, los análisis de datos Spark y la base de datos Atlas de MongoDB representan ejemplos de software que se desarrolla bajo el modelo de código abierto. Entre las aplicaciones de aprendizaje automático que destacan en esta área, se incluyen Apache MXNet, PyTorch y TensorFlow.

Otros ejemplos de software de código abierto que se emplean de forma prácticamente universal hoy en día incluyen las herramientas y los marcos de desarrollo web como WordPress y PHP, jQuery, Angular y Ruby on Rails. Para las aplicaciones móviles, el sistema operativo Android de Google cuenta con una extensa adopción, mientras que Apache Cordova representa un marco de código abierto popular para el desarrollo de aplicaciones móviles para distintas plataformas.

Código abierto y HPE

La colaboración abierta forma parte del ADN de HPE. Creemos que las comunidades y las tecnologías de código abierto pueden ayudar a ofrecer soluciones innovadoras de forma segura y a escala. HPE ofrece numerosas soluciones de software de código abierto a través de una amplia gama de aplicaciones de nivel empresarial. HPE se enorgullece de apoyar, usar y contribuir a varios proyectos de código abierto.

Chapel constituye un lenguaje de programación paralelo dirigido a la computación escalable y aplicable desde ordenadores de sobremesa y portátiles, hasta los máximos niveles de las aplicaciones de computación de alta potencia.

SmartSim permite el aprendizaje automático y la inteligencia artificial para aplicaciones de computación de alto rendimiento tradicionales, y ofrece a los investigadores funcionalidades adicionales para simulaciones, como análisis en línea, dirección de modelos y visualización.

KubeDirector es un controlador personalizado de Kubernetes de código abierto que facilita la implementación de aplicaciones con estado en clústeres Kubernetes estándares. Define las características de las aplicaciones con metadatos y artefactos de configuración, lo que facilita su implementación y actualización.

SPIFFE constituye un plano de control de identidad universal que forma parte de la Cloud Native Computing Foundation. Básicamente, se trata de un conjunto de estándares para autenticar servicios en entornos heterogéneos y dinámicos mediante el uso de identidad criptográfica independiente de la plataforma.SPIRE es un sistema de código abierto que implementa las especificaciones de SPIFFE en una amplia variedad de entornos.