Llegamos a ustedes gracias a:



Reportajes y análisis

7 desventajas de la cultura de código abierto

[23/01/2023] No cabe duda de los méritos de la filosofía de código abierto para escribir código y producir software. Muchos de los paquetes de software en el núcleo de la informática moderna, desde el sistema operativo Linux hasta MySQL, se crearon utilizando un modelo de desarrollo colaborativo y uso compartido abierto. Cuatro décadas de gran código, alimentado por la filosofía de la apertura, han resuelto cualquier duda sobre si la idea del código abierto funciona.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Pero a pesar de toda su grandeza, el código abierto no está exento de fallas. Ahora que el código abierto se ha vuelto popular, revisemos algunas de sus desventajas, no tanto la filosofía sino la realidad cotidiana. Aquí hay siete razones por las que los desarrolladores podrían pensar dos veces antes de contribuir en un proyecto de código abierto.

El código abierto no funciona con la nube

Muchas de las licencias de código abierto actuales se crearon antes de la nube, cuando los usuarios accedían al software descargándolo y ejecutándolo en sus desktops. Desde entonces, las empresas de la nube han encontrado formas de aprovechar el poder de la ética del código abierto manteniendo la propiedad de los cambios en su código. Un gerente de código abierto en una importante empresa de nube me dijo, bastante tímidamente, que ellos distribuyen el software, por lo que no necesitan compartir el código fuente.

Hay decenas de ejemplos de proveedores de nube que crean versiones especiales de proyectos de código abierto para revenderlos en la nube. Una de las rupturas más visibles fue entre Amazon Web Services y los creadores de Elasticsearch. Cuando las dos partes no pudieron llegar a un acuerdo, se separaron, y ahora hay dos versiones efectivas del código base de Elasticsearch.

Algunos defensores del código abierto se oponen a la cooptación de la nube mediante la elaboración de licencias o enmiendas más estrictas, como la Commons Clause. Es posible que veamos mejoras en el futuro, pero no ayudarán con los sistemas heredados que se distribuyen bajo las licencias de código abierto originales.

El código abierto tiene un problema de diversidad

La palabra comunidad se usa mucho en los círculos de código abierto, pero eso no significa que la cultura de código abierto sea una especie de Shangri-La. Los desarrolladores de código abierto pueden ser un grupo de personas bruscas, distraídas, obstinadas e incluso francamente mezquinas. También es bien sabido que el código abierto tiene un problema de diversidad, y ciertas figuras prominentes han sido acusadas de racismo y sexismo. La desigualdad estructural puede ser menos visible cuando las personas contribuyen a proyectos de código abierto con relativo anonimato, comunicándose solo a través de correos electrónicos o tableros de anuncios. Pero a veces ese anonimato genera sentimientos de desconexión, lo que puede hacer que el proceso de colaboración sea menos agradable e inclusivo de lo que parece.

Construir y mantener una comunidad toma tiempo

Muchas empresas lanzan versiones de código abierto de su producto como una "edición comunitaria. Es una excelente herramienta de marketing y también una buena manera de recopilar ideas y, a veces, código para mejorar el producto. Sin embargo, crear una verdadera comunidad en torno a ese proyecto requiere tiempo y recursos. Si un usuario y posible colaborador publica una pregunta en el tablón de anuncios de una comunidad en línea, espera una respuesta. Y sí, muchas contribuciones se hacen de manera gratuita, en aras del espíritu de código abierto, pero nutrir a la comunidad toma tiempo. Cuando funciona bien, el resultado puede ser un grupo floreciente que construye un gran código, pero suele haber mucho trabajo en el camino. Una consecuencia de esta compensación es que los proyectos empresariales más grandes tienden a dominar el campo. Pueden darse el lujo de financiar el modelo comunitario a través de funciones remuneradas que las empresas más pequeñas no pueden gestionar.

La tutoría de código abierto es sorprendentemente escasa

De manera similar, muchos desarrolladores están dispuestos a compartir su código con cualquiera, pero eso no significa que quieran ayudar a otros a aprender. Dar acceso a alguien a un repositorio de Git toma unos minutos, pero apoyar su crecimiento como desarrollador y colaborador es un compromiso importante. Incluso algunos proyectos incluyen una cláusula en sus acuerdos de contribución que dice que los contribuyentes no deben esperar ser incorporados o apoyados, o que sus preguntas sean respondidas. En esencia, contribuir a un proyecto de código abierto puede ser como tirarse de cabeza al fondo de la piscina: aquí hay miles de líneas de código y un problema que debe resolver. Encontrará muy pocos comentarios que expliquen lo que está pasando. ¡Gracias y buena suerte!

Hasta los incondicionales necesitan un sueldo

La mayoría de los desarrolladores de código abierto son idealistas que no están motivados por la fama y la fortuna, pero aun así necesitan comer y dormir bajo un techo. El mundo real tiene muchas limitaciones físicas que no son compatibles con el espíritu de compartir gratis del código abierto. La escasez puede ser un concepto extraño para el mundo digital, pero es un problema muy real para las formas de vida biológica.

El código abierto funciona bien para pilas pequeñas y proyectos apasionantes, en los que nadie espera que le paguen; pero puede resultar difícil para bases de código más grandes en las que trabajan programadores a tiempo completo. Si demasiados usuarios optan por la versión gratuita, el proyecto entero puede colapsar.

Nada es realmente gratis

Si pasa la cantidad de tiempo suficiente en el mundo de código abierto, es probable que se encuentre con el acrónimo TANSTAAFL, que significa "No existe tal cosa como un almuerzo gratis por sus siglas en inglés.

Después de que los usuarios descarguen el software de código abierto y lo utilicen, comenzarán a descubrir sus limitaciones. A veces, el código solo necesita unos retoques menores. Otras veces, ni siquiera tiene las características adecuadas. Nadie quiere quejarse del vaso medio lleno, especialmente cuando el precio es cero. Pero llenar el resto del vaso puede ser una carga sustancial para el desarrollador que tiene un plazo de entrega. Incluso cuando el código gratuito representa el 99% del camino hacia su objetivo, ese último 1% puede ser un verdadero esfuerzo.

Algunos proyectos no deberían ser de código abierto

El desarrollador de una base de datos me comentó que en realidad nunca se planteó la posibilidad de que su proyecto fuera de código abierto. Sus clientes eran grandes empresas con enormes conjuntos de datos. Tenían el presupuesto y estaban dispuestos a pagarle para que hiciera el trabajo. Si un cliente quería leer el código fuente, estaba más que dispuesto a permitírselo. Pero no quería pasar por la molestia de crear una versión formal y abierta del proyecto.

Las versiones de código abierto son útiles para el código que se utiliza por una amplia clase de desarrolladores que pueden ayudar a desplegar el código juntos. Sin embargo, en algunos casos el intercambio de dinero es una forma más simple y, en última instancia, más sostenible de organizar el trabajo de creación de software.

Puede ver también: