Cómo está cambiando el código abierto el mundo del desarrollo de software

23 de septiembre de 2024

Explore el impacto del código abierto en la tecnología y la seguridad. Vea cómo beneficia a los programadores y cómo las empresas están reconsiderando su valor.

Principales conclusiones: 

  • El código compartido ha evolucionado a lo largo de los años, pasando de los intercambios académicos a la comercialización, y ahora hacia un futuro impulsado por la experiencia colectiva y la innovación.
  • En la actualidad, el 50% de los programadores participan en proyectos de código abierto y, gracias a sus contribuciones, mejoran sus conocimientos, sus oportunidades de establecer contactos y sus perspectivas laborales. 
  • El valor económico medio del software de código abierto es de 1 a 2 veces su coste, lo que pone de manifiesto un importante rendimiento de la inversión que reconfigura las perspectivas empresariales hacia el código abierto.

¿Hasta qué punto somos realmente dueños de nuestras ideas? No se trata sólo de una cuestión filosófica; es una preocupación práctica sobre el control, la propiedad y los derechos sobre nuestras innovaciones. La propiedad puede producir satisfacción personal y éxito profesional. Sin embargo, aferrarnos demasiado a nuestras creaciones sin invitar a la colaboración puede ahogar su desarrollo y limitar su impacto.

Este reto pone de relieve el valor de la filosofía del código abierto. Por código abierto se entiende una base de código accesible al público que puede modificarse o compartirse en colaboración, lo que permite una inspección, adaptación y mejora vitales de la tecnología subyacente.

Según el estudio 2022 Currents de Digital Ocean, el 50% de los programadores contribuyen a proyectos de código abierto y más del 90% de los responsables de TI utilizan código abierto empresarial para sus aplicaciones más importantes. Sin embargo, la pregunta sigue siendo: ¿hasta qué punto el código abierto está configurando el panorama del desarrollo tecnológico, especialmente en el ámbito de la cadena de bloques y las criptomonedas? Averigüémoslo. 

De compartir código a la tecnología colaborativa 

En los primeros tiempos de la informática, todo era coser y cantar. Durante la década de 1960, el software se compartía libremente entre académicos y empresas, como complemento del costoso hardware en el que funcionaba. Sin embargo, el panorama cambió cuando las empresas se dieron cuenta del potencial de comercialización del software. Este cambio comenzó con IBM y marcó la llegada del software propietario.

En 1983, Richard Stallman, el primer activista del software, lanzó el Proyecto GNU, promoviendo el uso del software libre. También introdujo la Licencia Pública General GNU (GPL), que permitía utilizar, modificar y distribuir software libremente.

Entonces, en 1991, Linus Torvalds apareció en escena, lanzando el núcleo Linux como software de código abierto libremente modificable, que se convirtió en el primer sistema operativo totalmente de código abierto.

En la década de 2000, las empresas adoptaron ampliamente Linux y el software de código abierto, y grandes compañías como IBM, Oracle y Microsoft empezaron a apoyar proyectos de código abierto. Durante este periodo, el código abierto se convirtió en un estándar en el desarrollo de software, influyendo en el software, el hardware y los contenidos.

Al igual que el desarrollo de software, la criptografía ha experimentado una evolución similar. Antaño era el dominio de operaciones clandestinas y círculos exclusivos, con una rica historia de estrecha vigilancia. En sus inicios, el arte de codificar y descodificar mensajes era sobre todo una herramienta militar, muy utilizada en guerras y conflictos para proteger las comunicaciones y engañar a los adversarios. 

La transición hacia prácticas criptográficas más abiertas empezó a cobrar impulso con la llegada de la era digital y la creciente necesidad de soluciones criptográficas civiles. Ahora se necesitaban comunicaciones digitales seguras, como demuestra el desarrollo de SSL para las transacciones por Internet y el uso generalizado de bibliotecas criptográficas de código abierto como OpenSSL, lo que convirtió a la criptografía moderna en una parte integral y transparente de la tecnología cotidiana. Al igual que el código, hoy en día la criptografía se realiza mayoritariamente en abierto, con la creciente creencia de que la criptografía pública y revisada por pares, paradójicamente, siempre será más segura que los algoritmos criptográficos cerrados/secretos. 

Luego llegó Bitcoin, una tecnología que necesita poca presentación pero que merece una de todos modos: un libro de contabilidad público de código abierto que revolucionó las transacciones financieras. Tras Bitcoin, se produjeron avances significativos como la introducción de Vitalik Buterin de los contratos inteligentes en Ethereum, el sencillo BFT PoS de Tendermint, fácilmente programable con el SDK Cosmos, y la cadena de bloques soberana de THORChain, que es tanto de código abierto como multicadena, lo que condujo al protocolo de liquidez descentralizado Maya Protocol y a más protocolos multicadena por venir. 

El enfoque ha cambiado a medida que el código abierto sigue dominando el desarrollo de software, ahora integral para la computación en la nube, la inteligencia artificial, el aprendizaje automático y el IoT. Hoy no solo buscamos innovación tecnológica, sino también fiabilidad. 

Por ejemplo, aunque Kubernetes es una potente herramienta de código abierto para gestionar aplicaciones en contenedores, su mera adopción no garantiza la fiabilidad. Se trata solo de una herramienta; las organizaciones deben generar confianza mediante un rendimiento constante y medidas de seguridad sólidas para aprovechar su potencial en diversos entornos.

¿Es más fiable el código abierto?

El software libre y de código abierto puede ser más fiable debido a su transparencia, la participación de la comunidad y su naturaleza colaborativa, lo que a menudo conduce a rápidas correcciones de errores y mejoras continuas. Sin embargo, no todos los proyectos de código abierto cumplen normas tan estrictas. La fiabilidad también depende del tamaño de la comunidad, la gobernanza del proyecto y la disponibilidad de recursos para el mantenimiento y el desarrollo.  

Veamos un ejemplo que ilustra un reto importante dentro de los ecosistemas de código abierto. El reciente descubrimiento de una puerta trasera en la biblioteca de compresión de datos XZ Utils, utilizada por varios de los principales distribuidores de Linux, pone de relieve los riesgos de seguridad que entraña. 

Este incidente fue especialmente notable porque el código malicioso, que afectaba a distribuciones como Fedora, Debian y Arch Linux, permitía el acceso remoto no autorizado. Ahora bien, esto pone de relieve la paradoja de la seguridad del código abierto: si bien la naturaleza abierta de estos proyectos los expone a vulnerabilidades, es esta misma transparencia la que permite descubrir y remediar rápidamente tales amenazas.   

Banderas verdes de un proyecto de código abierto:

Comunidad activa: Aporta diversas perspectivas y experiencia, fomentando el intercambio de conocimientos y la mejora de la calidad.

Actualizaciones periódicas: Los frecuentes commits, merges y actualizaciones en el repositorio de código muestran un desarrollo continuo.

✅ Gobernanza transparente: Procesos claros de toma de decisiones y debates abiertos sobre la dirección del proyecto son signos de una gobernanza saludable.

✅ Bien documentado: Una documentación completa y actualizada para usuarios y desarrolladores es crucial para la usabilidad y las contribuciones continuas.

✅ Fuertes medidas de seguridad: Auditorías de seguridad periódicas, programas de recompensas por fallos y respuestas rápidas a las vulnerabilidades. 

✅ Características de interoperabilidad: La compatibilidad con la integración de otros sistemas y aplicaciones blockchain sugiere un enfoque flexible y con visión de futuro.

¿Son todas las cadenas de bloques de código abierto? 

Aunque muchas de las plataformas blockchain más conocidas, como Bitcoin y Ethereum, son de código abierto, lo que permite a cualquiera revisar, modificar o distribuir su código, también existen blockchains propietarias. 

Estas blockchains propietarias o privadas son desarrolladas y mantenidas por organizaciones específicas, y el acceso a su código fuente está restringido a determinados usuarios o permanece completamente cerrado al público. Las empresas suelen utilizar este tipo de cadenas de bloques para necesidades empresariales especializadas en las que la empresa prefiere mantener el control sobre la funcionalidad y la seguridad de la cadena de bloques.

En cambio, el Protocolo Maya funciona como un protocolo de liquidez de código abierto totalmente auditable, lo que aumenta la transparencia y la confianza. En el ecosistema blockchain, este enfoque de código abierto es especialmente valioso, ya que permite un mayor escrutinio y validación por parte de los nodos, garantizando que el código que rige las transacciones e interacciones es seguro y funciona según lo previsto. Este modelo no sólo fomenta la transparencia, sino que también mejora la seguridad, ya que la validación de la comunidad se recompensa y fomenta continuamente.

¿Es el código fuente abierto libertad de expresión? 

Cuando la colaboración es generalizada y las contribuciones proceden de un abanico diverso de voluntarios, la cuestión de la responsabilidad, sobre todo en caso de fallos o violaciones de la seguridad, se vuelve compleja. La noción predominante es que las empresas que se benefician de la integración de software de código abierto en sus productos deben asumir la responsabilidad. Esto se predica principalmente de la idea de que las empresas que se benefician económicamente están en mejor posición para gestionar el riesgo y son más capaces de apoyar las iniciativas de seguridad necesarias en comparación con los mantenedores voluntarios. 

Sin embargo, se plantea una cuestión polémica con la posibilidad de que los desarrolladores distribuyan intencionadamente código malicioso bajo la apariencia de código abierto. En tales casos, ¿deberían quedar exentos de responsabilidad?

Aunque la responsabilidad principal de la seguridad del software de código abierto puede recaer lógicamente en las entidades comerciales que se benefician de su uso, la comunidad del código abierto también debe lidiar con el mantenimiento de un equilibrio entre apertura y responsabilidad, especialmente en casos excepcionales que impliquen intenciones maliciosas.

Los beneficios profesionales y personalesdecontribuir al código abierto

El software de código abierto, aunque gratuito, no implica necesariamente que las contribuciones no sean remuneradas. Sin embargo, muchos desarrolladores participan en proyectos de código abierto porque creen en la "cultura del regalo", en la que todo el mundo -independientemente de su formación o recursos- tiene acceso al mismo código y la misma oportunidad de modificarlo, utilizarlo y redistribuirlo. 

Los participantes son libres de modificar el código existente y adaptarlo a nuevos usos, con la estipulación principal de que cualquier distribución debe conservar la misma licencia que el original. Esto garantiza que los usuarios disfruten de las mismas libertades que sus predecesores. Del mismo modo, si esos usuarios modifican y redistribuyen el código, los usuarios posteriores heredarán esas mismas libertades.

Para subrayar aún más la importancia de esta comunidad, el informe Digital Ocean Currents de junio de 2022 destaca lo vital que es la participación en el código abierto para el desarrollo personal y profesional. Según el informe, el 20% de los colaboradores ha ayudado a otros a desarrollar sus capacidades, mientras que el 15% ha participado en proyectos centrados en misiones, diversidad e inclusión. Más allá de la mera satisfacción personal, el 32% de los participantes afirma sentirse útil y parte de una comunidad más amplia. 

El informe también indica importantes beneficios profesionales: El 35% de los colaboradores ha mejorado sus conocimientos, el 19% ha ampliado sus redes profesionales y el 11% ha conseguido oportunidades laborales gracias a su participación en la comunidad de software libre.

Fuente: Digital Ocean Currents Junio, 2022
Fuente: Digital Ocean Currents Junio, 2022

Esta comunidad dinámica no sólo fomenta una cultura de intercambio y crecimiento, sino que también dota a sus miembros de valiosas experiencias que van mucho más allá de los entornos profesionales tradicionales. Cada vez más empresas y organizaciones reconocen que el valor de los modelos de código abierto supera las expectativas iniciales.

Según la encuesta 2023 de la Fundación Linux sobre el valor del código abierto, se calcula que el valor económico medio del software de código abierto (OSS) es 1-2 veces superior a su coste. Esto pone de manifiesto que las ventajas de utilizar código abierto superan con creces sus costes. Esta constatación está empujando a más entidades a adoptar estrategias de código abierto, aprovechando la experiencia colectiva y la innovación de estas comunidades.