Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

¿Es gratis el Open Source? La realidad detrás del tipo de software más utilizado por los programadores

¿Te has preguntado alguna vez si ese software "gratis" que usas cada día realmente lo es? Muchos desarrolladores confían en herramientas y librerías de código abierto (open source) sin detenerse a pensar en lo que hay detrás. Usamos estos proyectos a diario, en nuestro trabajo y en nuestros proyectos personales, pero ¿qué pasa cuando una de esas herramientas cambia las reglas del juego?

Imagina que de la noche a la mañana, una librería esencial para tu trabajo, una que siempre ha sido gratuita, te exige una licencia de pago. Esto es lo que ocurrió recientemente con FluentAssertions, una herramienta muy popular en la comunidad .NET. Este cambio no solo ha generado polémica, sino que ha abierto un debate crucial sobre el futuro del open source.

En este artículo, vamos a explorar qué significa realmente "open source", por qué algunos proyectos deciden empezar a cobrar y qué desafíos enfrentan los desarrolladores que mantienen estas herramientas. Prepárate para descubrir el lado oculto del código abierto y cómo tú, como desarrollador, puedes contribuir a un ecosistema más sostenible.

Te dejamos además la conversación que mantuvo sobre este tema nuestro fundador y jefe de estudios José Manuel Alarcón con Jorge Turrado, mantenedor principal de Keda, uno de estos proyectos Open Source grandes y casi esenciales, y en la que hemos basado este artículo. Seguro que te gusta.

 

También publicamos en su día un vídeo y artículo con una temática similar, que te recomendamos: Una carta de amor al Open Source y cómo podemos protegerlo.

 

Jorge Turrado es también el autor y tutor de nuestro curso de Testing para .NET con xUnit y Moq.

 

El caso de FluentAssertions: De "gratis" a pago

FluentAssertions es una biblioteca muy conocida y utilizada por desarrolladores .NET para realizar pruebas de software. Permite escribir test de una manera más fluida y legible, facilitando mucho el trabajo de testing. Hasta hace poco, esta herramienta era totalmente gratuita y de código abierto, bajo la licencia Apache 2.

Sin embargo, recientemente, los mantenedores de FluentAssertions decidieron cambiar la licencia. La nueva licencia implica que, para cualquier uso comercial que no sea también open source, es necesario pagar una licencia. Este cambio ha generado una gran polémica en la comunidad de desarrolladores .NET.

El problema no fue tanto la decisión de cobrar, sino la forma en que se hizo. El cambio de licencia se aplicó a una nueva versión, relicenciando código que en su mayoría había sido desarrollado bajo una licencia diferente. Además, muchos usuarios se sintieron sorprendidos y molestos por este cambio repentino, ya que dependían de esta biblioteca en sus proyectos y ahora se veían obligados a pagar o buscar alternativas.

Este caso pone de manifiesto una realidad del mundo del open source: el software no se mantiene solo y a veces, los mantenedores necesitan buscar formas de sostener económicamente sus proyectos.

Open Source: No es sinónimo de "gratis"

Imagen ornamental

Es común pensar que "open source" significa "gratis", pero no es así. El término "open source" se refiere a que el código fuente está disponible para todos. Esto permite que cualquiera pueda ver, modificar y distribuir el software. Sin embargo, esto no implica que no pueda tener un coste.

La confusión viene de la traducción del término inglés "free", que en español puede significar tanto "libre" como "gratis". En el mundo del software, "libre" se refiere a la libertad de usar, modificar y distribuir el código, mientras que "gratis" se refiere a que no tiene coste económico. Un proyecto puede ser de código abierto y no ser gratis.

Muchos proyectos open source empiezan siendo totalmente gratuitos, mantenidos por voluntarios que aportan su tiempo y esfuerzo. Sin embargo, llega un punto en que el proyecto crece y los mantenedores se enfrentan a desafíos económicos:

  • Infraestructura: los proyectos necesitan servidores para pruebas, integración continua y otros servicios. Esta infraestructura puede ser costosa, a veces miles de dólares al mes, y alguien tiene que pagar por ella.
  • Tiempo y esfuerzo: los mantenedores dedican muchas horas no solo a programar el producto, sino también a revisar código, corregir errores, responder a preguntas de los usuarios y mantener el proyecto al día. Este trabajo no suele ser remunerado y requiere de un gran esfuerzo personal y prescindir de otras cosas, como estar con la familia o ganar más dinero.
  • Falta de contribuciones: muchos usuarios se benefician de proyectos open source, pero pocos contribuyen activamente. Esto hace que la carga de trabajo recaiga sobre un pequeño grupo de personas y además se "queman".
  • "Hit and run": algunas contribuciones son puntuales y no se integran bien en el proyecto, creando problemas a largo plazo. Estos contribuyentes aparecen con una necesidad, la solucionan de la forma más rápida posible, y desaparecen dejando la carga a los mantenedores.
  • Exigencias de los usuarios: algunos usuarios exigen soluciones o mejoras como si estuvieran pagando por un servicio, sin ser conscientes del esfuerzo que hay detrás de un proyecto gratuito. Esta falta de consciencia puede generar frustración en los mantenedores.

Estos desafíos pueden llevar a los mantenedores a sentirse abrumados y a buscar formas de sostener económicamente el proyecto y seguir ofreciendo un producto de calidad. Esto a veces implica cambiar la licencia o empezar a cobrar por su uso como ha pasado con FluentAssertions.

La clave está en encontrar un equilibrio entre la libertad del código abierto y la sostenibilidad del proyecto.

¿Por qué los desarrolladores contribuyen al Open Source?

Si todo lo anterior es así y muchas veces mantener un proyecto open source tiene tanto coste personal, ¿qué les lleva a estos desarrolladores a dedicar muchas horas cada mes a mantener altruistamente todo esto?

  • Necesidad y solución de problemas: algunos desarrolladores, como nos contó que era su caso Jorge Turrado, comienzan a contribuir porque tienen una necesidad concreta en su trabajo y buscan una solución que beneficie a todos. En su caso, empezó a colaborar con Keda porque necesitaba una herramienta para su empresa.
  • Aprendizaje y crecimiento profesional: participar en proyectos open source es una excelente manera de aprender nuevas habilidades y mantenerse al día con las últimas tecnologías. Permite a los desarrolladores trabajar con código de alta calidad, aprender de otros profesionales y mejorar sus propias habilidades.
  • Valor de la comunidad: la comunidad open source es un espacio colaborativo donde los desarrolladores comparten conocimientos, ideas y experiencias. Contribuir a un proyecto permite formar parte de esta comunidad y conectar con otros profesionales del sector. A veces también con grandes empresas.
  • Reconocimiento y oportunidades: el trabajo en proyectos open source puede dar visibilidad a los desarrolladores y abrir puertas a nuevas oportunidades profesionales. Ser mantenedor o colaborador activo de un proyecto reconocido puede mejorar el currículum y la reputación en la comunidad.
  • Sentido de utilidad: muchos desarrolladores sienten satisfacción al saber que su trabajo está ayudando a otros a resolver problemas o a mejorar sus proyectos. El impacto que tiene el open source en el mundo de la tecnología es una gran motivación para muchas personas.

El caso de Jorge Turrado: Jorge, que ahora es mantenedor principal de Keda, comenzó siendo electricista. Su trayectoria profesional, desde "tirar cable" hasta trabajar en una enorme multinacional europea como Principal SRE (Service Reliability Engineer), ha sido también gracias a la comunidad y a su participación en proyectos open source. Esto demuestra cómo el open source puede ser un motor de crecimiento personal y profesional.

En definitiva, la motivación para contribuir al open source es generalmente una combinación de factores personales y profesionales. Aunque la mayoría de los desarrolladores no lo hacen por dinero, los beneficios que obtienen son importantes y contribuyen a un ecosistema tecnológico más rico y colaborativo.

El problema es cuando esto los absorbe tanto que el proyecto no es compatible con su trabajo y su vida. O no tienen en realidad aliciente alguno para seguir, porque nadie colabora y además exigen.

Modelos de sostenibilidad para el Open Source

La sostenibilidad de los proyectos open source es un desafío clave en cuanto empiezan a ser indispensables, bien para la comunidad en su conjunto o para empresas concretas (o incluso para ti). El modelo actual, basado en contribuciones altruistas, no parece ser totalmente sostenible a largo plazo.

Algunos modelos que se han probado o que podrían funcionar son:

  • Patrocinios y donaciones: plataformas como GitHub han facilitado que los usuarios puedan donar pequeñas cantidades de forma recurrente a los proyectos que utilizan. Esto permite que los desarrolladores puedan recibir un apoyo económico por su trabajo y deberíamos ser más conscientes de ello todos los que utilizamos proyectos abiertos cada día. También es importante que las empresas que se benefician del open source contribuyan económicamente a los proyectos que utilizan, ya sea a través de donaciones o de patrocinios. Las empresas podrían destinar un pequeño porcentaje de su presupuesto de licencias a apoyar los proyectos open source.
  • Licencias duales o híbridas: este modelo permite que los proyectos sean gratuitos para uso no comercial, pero requieran una licencia de pago para uso comercial. Este modelo es el que ha adoptado FluentAssertions, aunque la forma de implementarlo ha generado polémica. También lo hizo HashiCorp con Terraform y Bolt, por citar un ejemplo muy conocido.
  • Servicios de soporte: algunos proyectos open source ofrecen servicios de soporte o consultoría a empresas que utilizan su software. Esto permite a los mantenedores generar ingresos y ofrecer un servicio de mayor calidad a los usuarios que lo necesitan.
  • Apoyo de fundaciones: algunas fundaciones, como la Cloud Native Computing Foundation (CNCF), ofrecen apoyo económico y legal a proyectos open source. Estas fundaciones pueden proporcionar infraestructura, recursos y contactos para que los proyectos puedan crecer y mantenerse.

Aunque todos estos modelos pueden ayudar a la sostenibilidad de los proyectos open source, es necesaria una mayor concienciación por parte de los usuarios y de las empresas. Es importante reconocer que el open source no es sinónimo de gratis y que los desarrolladores necesitan recibir un apoyo para poder seguir creando software de calidad, lo cual nos lleva al siguiente punto: la importancia de las contribuciones.

¿Cómo puedes contribuir tú al Open Source?

Las contribuciones de todos (sí, las tuyas también) son esenciales para la salud y el éxito de los proyectos open source.

La forma común de contribuir que viene a la cabeza es escribiendo código para añadir nuevas funcionalidades, corregir errores o mejorar el rendimiento del software. Sin embargo, no todas las contribuciones de código son iguales, ya que algunos desarrolladores hacen contribuciones puntuales que no se integran bien en el proyecto, creando problemas a largo plazo. Además, no todo el mundo puede hacerlo.

Pero no se trata solo de escribir código, hay muchas otras formas de contribuir y todas aportan valor a los proyectos:

  • Documentación: una buena documentación es fundamental para que los usuarios puedan entender y utilizar el software. Contribuir a la documentación puede ser tan útil como contribuir al código. Traducir la documentación a otros idiomas también puede ser una forma de contribuir muy valiosa.
  • Pruebas: realizar pruebas del software es una tarea fundamental para asegurar su calidad. Reportar errores, reproducir bugs y ayudar a los desarrolladores a encontrar y solucionar problemas es muy importante.
  • Soporte a otros usuarios: responder preguntas en foros o en la sección de issues de GitHub, ayudar a otros usuarios que tienen problemas y compartir conocimientos son también formas de contribuir muy valiosas, ya que ayudan a construir una comunidad fuerte y colaborativa.
  • Donaciones económicas: si no se puede contribuir de otra forma, también se puede (y casi, moralmente, se debe) donar dinero a los proyectos que se utilizan. Aunque sean pequeñas cantidades, estas donaciones pueden ayudar a los mantenedores a cubrir los costes de la infraestructura o a dedicar más tiempo al proyecto. En este sentido, GitHub ha puesto muy fácil esta labor.
  • Promoción: hablar de un proyecto en meetups, redes sociales o en el trabajo también ayuda mucho a los proyectos, ya que les da visibilidad y atrae a nuevos colaboradores.
  • Contribuir de forma consciente: es importante hacer un esfuerzo a la hora de reportar un error o un bug, proporcionando logs, trazas y guiar a los desarrolladores a la solución.

Es importante tener en cuenta que nadie está obligado a contribuir, pero si se utiliza un proyecto open source de forma regular, es recomendable tratar de contribuir de alguna manera. De esta forma se construye un ecosistema tecnológico más rico y sostenible.

Pero, ¿y qué pasa con las grandes empresas?

La responsabilidad de las grandes empresas con el Open Source

Las grandes empresas se benefician enormemente del open source, ya que utilizan multitud de herramientas y bibliotecas en sus productos y servicios. Sin embargo, muchas de ellas no contribuyen de vuelta a la comunidad, lo cual plantea un problema ético y de sostenibilidad.

  • Beneficios del open source para las grandes empresas: estas empresas muchas veces basan sus productos en proyectos open source, ahorrando costes y acelerando el desarrollo. Además, el open source les permite acceder a una gran cantidad de talento y a la innovación que surge de la comunidad. Por ejemplo, muchos servicios en la nube se basan en tecnologías de código abierto.

  • El problema del "gorronismo": algunas grandes empresas utilizan proyectos open source sin contribuir económicamente ni con recursos. Esto se considera una forma de "gorronismo", donde se aprovechan del trabajo de otros sin dar nada a cambio.

  • Modelos de contribución de las grandes empresas:

    • Patrocinios y donaciones: pueden destinar parte de su presupuesto a patrocinar o donar a proyectos open source. Esto ayudaría a financiar el desarrollo y el mantenimiento de estos proyectos. Algunas empresas, como Microsoft, dan crédito en Azure a proyectos como Keda.
    • Contribuciones de código: las empresas pueden permitir a sus desarrolladores contribuir a proyectos open source, aportando nuevas funcionalidades o corrigiendo errores.
    • Liberación de proyectos propios: algunas empresas deciden liberar como open source algunos de sus proyectos. Esto puede beneficiar a la comunidad y a la propia empresa, ya que puede atraer a nuevos desarrolladores e ideas.
    • Soporte a fundaciones: las empresas pueden apoyar económicamente a fundaciones como la CNCF, que a su vez financian proyectos open source.

Este modelo de colaboración entre grandes empresas y proyectos open source es esencial para garantizar que el open source siga siendo una fuerza impulsora de la innovación y del desarrollo tecnológico.

Una llamada a la acción para ti y para todos

Es fundamental entender que el open source no es sinónimo de gratis, sino de código abierto. Aunque parece una obviedad, en la práctica no lo es tanto. Los desarrolladores que dedican su tiempo y esfuerzo a crear y mantener proyectos open source merecen ser reconocidos y apoyados. Si bien, muchos contribuyen por la satisfacción de resolver un problema, aprender y formar parte de una comunidad, es necesario encontrar modelos que permitan la sostenibilidad a largo plazo.

Para ello, necesitamos un cambio de mentalidad:

  • Nosotros como desarrolladores individuales y usuarios: debemos ser conscientes de que dependemos en gran medida del open source en nuestro día a día. En lugar de dar por sentado el trabajo de otros, debemos tratar de contribuir en la medida de nuestras posibilidades. Esto puede ser a través de donaciones económicas, contribuciones de código, documentación, pruebas o simplemente dando soporte a otros usuarios.
  • Empresas pequeñas, medianas y grandes: las grandes empresas se benefician enormemente del open source, por lo que deben ser las primeras en reconocer su valor y apoyar económicamente a los proyectos. Destinar un pequeño porcentaje de su presupuesto de licencias o recursos a proyectos open source tendría un impacto enorme en la sostenibilidad del ecosistema. Además, deberían permitir a sus empleados contribuir a los proyectos que utilizan y liberar como open source aquellos proyectos propios que puedan ser útiles para la comunidad.
  • Administraciones Públicas: las Administraciones deberían facilitar la donación a proyectos de código abierto y promover una cultura de open source que vaya más allá de la mera conveniencia u obligación de utilizarlo.

El open source es una fuerza impulsora de la innovación y del desarrollo tecnológico. Su éxito depende de todos nosotros. Si cada uno de nosotros pone su granito de arena, podremos construir un ecosistema más justo, sostenible y colaborativo. Es hora de pasar a la acción de manera más activa.

Y tú ¿contribuyes de alguna manera a algún proyecto open source que utilices? Cuéntanoslo en los comentarios.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: DevFacts | General

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.