Esta semana proponemos a los alumnos un debate sobre ¿Quién puede utilizar datos de código abierto? ¿Las empresas podrían utilizarlo? ¿Podría alguien obtener beneficios económicos?
DEBATE
El código abierto, conocido también como open source, es un código de un programa que se distribuye libremente, es decir, no tiene costo alguno para ser utilizado. De la misma manera, también puede ser modificado por los usuarios sin restricción alguna lo que lo hace muy atractivo para muchas empresas de software. Un ejemplo que sirve de analogía puede ser el de una receta. Si la receta fuese open source, sería pública y cualquiera podría conocer los ingredientes y los pasos para prepararla. Si el código no fuese abierto, habría que pedir permiso o adquirir una licencia para hacer uso de la receta.
Primero que todo necesitamos aclarar que todo software libre es de código abierto pero no todo el software de código abierto es libre. Estos programas son más flexibles en sus reglas porque permiten que otros desarrolladores y empresas de software los usen y también sugieran modificaciones.
Además, el código abierto puede usarse para lo que el usuario desee y puede distribuirse de forma libre y gratis, aunque algunos puede que sean pagos.
Buena parte del software que utilizamos habitualmente tiene su base en proyectos de código abierto. El hecho de querer que un software esté disponible en forma de código abierto obliga a sus creadores, como mínimo, a revisarlo profundamente y a documentarlo de forma adecuada, algo que a pocos desarrolladores les gusta hacer.
La idea, además, de crear un software para que cualquiera pueda beneficiarse de su uso tiene un componente altruista que resulta sumamente interesante de cara a lo que deberían ser nuestras sociedades. Lamentablemente tan solo alrededor del 11% de estos proyectos reciben un mantenimiento mínimamente activo. Se calcula que en torno al 10% de las incidencias de seguridad se deben a vulnerabilidades surgidas en software de código abierto ¿Quieres esa responsabilidad y encima enriqueciéndote del trabajo de otros? Hay un montón de posibilidades de muchos tipos que pueden hacer que un proyecto de código abierto no se convierta en comunidad, incluso aunque obtenga popularidad. Utilizar algo no requiere el mismo nivel de compromiso que colaborar en su desarrollo. La cuestión resulta sumamente interesante: el software permite que cualquiera con las ideas adecuadas pueda añadir valor, pero ese valor no siempre se expresa de formas convencionales. A menudo, un desarrollador que crea proyectos interesantes se ve remunerado con mejores trabajos o con más prestigio, pero no necesariamente de manera directa. A partir de ahí, con el software que creó puede ocurrir cualquier cosa:
El código abierto es la forma más ventajosa de crear software: cuando un proyecto de software toma la forma de código abierto y logra congregar a una comunidad de desarrolladores trabajando activamente en él, documentándolo y mejorándolo constantemente, se obtiene un círculo claramente virtuoso en el que, entre otras cosas, se cumple la conocida Ley de Linus.
Cuando quien decide qué código se utiliza es un algoritmo, ese retorno suele volverse inexistente. Si muchos desarrolladores, como hemos visto, ni se plantean colaborar con la mejora o mantenimiento de una pieza de software de código abierto que utilizan, ¿qué esperamos de un simple algoritmo carente de tales razonamientos? ¿Va el algoritmo a decir: …”a lo mejor sería interesante ayudar aquí y mejorar esto…”? O, ¿simplemente va a coger lo que necesite, e irse sin ni siquiera despedirse?
Hoy en día el uso del código open source se ha popularizado y muchas empresas, incluso grandes corporaciones, lo utilizan para la creación de sus propios programas. Algunas de ellas que quizás conozcas e incluso utilices hoy en día su software son:
· Red Hat: Es una empresa de software que provee código abierto y según el sitio Linux Adictos, fue adquirida por IBM.
· Canonical: Esta empresa crea diversos proyectos para la nube y otras compañías. Es más conocida por el sistema operativo Ubuntu, que es de código abierto.
· Google: Esta empresa no necesita presentación. Es también una de las que más aporta al código abierto hoy en día.
· IBM: Como ya comentamos anteriormente, absorbió a Red Hat lo que suma a su trayectoria como gran empresa de software el desarrollo de código open source.
· Oracle: Sun Microsystems era una de las grandes empresas de código abierto y fue adquirida por Oracle para continuar con el desarrollo de proyectos en esta área.
· Adobe: Su producto más popular es quizás Photoshop y de código abierto no tiene nada, además de lo costosa que es la licencia, pero en GitHub colaboran con un gran repositorio de código open source.
· Microsoft: Aunque no lo parezca, Microsoft también se ha unido a las empresas de software que utilizan código abierto. Han aportado tras liberar algunos de sus programas y con la compra de GitHhub.
· mongoDB: Esta empresa tiene uno de los proyectos de bases de datos alternativas más grandes en la actualidad.
· Docker: Es una empresa que aporta mucho a proyectos en la nube hoy en día a través del código abierto.
· CHEF: Tienen una importante plataforma de código abierto para automatizar y permitir definir infraestructuras a diversas escalas.
CONCLUSIONES
Quedan por resolver muchas cuestiones que tras la intensidad del debate han sido pospuestas para otra ocasión. ¿Cómo manejarnos en un entorno cada vez más complejo y variado, con cada vez más piezas creadas mediante procesos en muchos casos voluntaristas, y que son gestionadas cada vez más de manera arbitraria y sin demasiada visibilidad? ¿Cómo dotar a los repositorios de software de la inteligencia adecuada como para entender cuándo es recomendable o no reutilizar un componente? O mejor, ¿cómo crear incentivos para que una tarea como el mantenimiento, mucho menos motivadora que el desarrollo como tal, reciba la atención adecuada y se reconozca su valor?
Fuentes