488 - Ni OpenAI, ni ChatGPT, Open Source
¿Cuál es el temor de Google para los próximos años? Ni ChatGPT, ni OpenAI... El Open Source es según ellos el rival que hay que tener
Hace unos días escuché o leí una noticia sobre un informe o una filtración que se había producido, por parte de un ingeniero de Google, en el que hablaba de las verdaderas amenazas a las que se tenía que enfrentar Google en los próximos años. Y ni hablaba ni de ChatGPT, ni de OpenAI, hablaba del Open Source. Todo, por algo que comento al final de este artículo/podcast, y es que precisamente el Open Source, permite un desarrollo más rápido que el software privativo.
Siempre he pensado que el camino para avanzar se encontraba en el Open Source, y cuando se sigue esa senda, todo realmente avanza a un mejor ritmo y de forma práctica. Sin embargo, me llama la atención que lo vean como una amenaza, en lugar de verlo como un oportunidad para unirse y subirse a ese carro.
Ni OpenAI, ni ChatGPT, Open Source
¿Que diferencias hay entre el Open Source y el Software Privativo?
La principal diferencia entre el software de código abierto (Open Source) y el software privativo (proprietario) radica en la disponibilidad del código fuente. En el software de código abierto, el código fuente está disponible para que cualquier persona lo vea, lo estudie, lo modifique y lo distribuya libremente, mientras que en el software privativo, el código fuente está protegido y solo está disponible para el propietario del software y aquellos a quienes éste autoriza para su uso.
Otras diferencias importantes incluyen el costo, la flexibilidad y el control. El software de código abierto es generalmente gratuito o de bajo costo, lo que lo hace más accesible para individuos y organizaciones con presupuestos limitados. Además, el software de código abierto tiende a ser más flexible y personalizable, ya que los usuarios tienen la capacidad de modificar y adaptar el software a sus necesidades específicas. Por otro lado, el software privativo a menudo ofrece un alto nivel de soporte y garantía de calidad, ya que está respaldado por una empresa que se dedica a su desarrollo y mantenimiento.
Pero, ¿y que diferencias hay entre el Open Source y el Software Libre?
A menudo se usan indistintamente los términos «Open Source» y «Software Libre», pero hay algunas diferencias sutiles entre ellos.
El software libre se refiere a un tipo de software que se distribuye con una licencia que otorga al usuario la libertad de usar, estudiar, modificar y distribuir el software y sus derivados sin restricciones. El movimiento del software libre se centra en la libertad del usuario y en la ética del compartir y la colaboración. La definición de software libre se basa en las «Cuatro Libertades» que establece la Free Software Foundation (FSF).
Por otro lado, el software de código abierto se refiere a un tipo de software cuyo código fuente está disponible públicamente y se puede utilizar, modificar y distribuir libremente. El movimiento del código abierto se centra en la eficiencia y en la calidad del software, haciendo hincapié en la importancia de tener acceso al código fuente para facilitar la colaboración y la revisión del mismo.
¿Que ventajas e inconvenientes tiene el Open Source frente al Software privativo?
El software de código abierto (Open Source) y el software privativo (proprietario) tienen ventajas e inconvenientes que deben ser considerados al elegir entre ellos. A continuación, se presentan algunas de las ventajas y desventajas del software de código abierto en comparación con el software privativo:
Ventajas del software de código abierto:
- Accesibilidad: el software de código abierto es generalmente gratuito o de bajo costo, lo que lo hace más accesible para individuos y organizaciones con presupuestos limitados.
- Personalización: el código fuente del software de código abierto está disponible públicamente, lo que permite a los usuarios modificar y personalizar el software según sus necesidades específicas.
- Transparencia: el código fuente del software de código abierto está disponible públicamente, lo que permite a los usuarios revisar y comprender cómo funciona el software.
- Comunidad: los proyectos de código abierto a menudo tienen una gran comunidad de usuarios y desarrolladores que trabajan juntos para mejorar y mantener el software.
Desventajas del software de código abierto:
- Soporte: el soporte técnico para el software de código abierto puede ser limitado o inexistente, especialmente para proyectos más pequeños.
- Conocimientos técnicos: el uso y la modificación del software de código abierto a menudo requiere un conocimiento técnico significativo.
- Estabilidad: algunos proyectos de código abierto pueden ser menos estables o tener menos funciones que sus equivalentes de software privativo.
- Interoperabilidad: algunos proyectos de código abierto pueden tener problemas para interoperar con otros sistemas o software.
Ventajas del software privativo:
- Soporte: el soporte técnico para el software privativo es generalmente más completo y está disponible a través de la empresa propietaria del software.
- Funcionalidad: el software privativo a menudo tiene más características y funciones que los proyectos de código abierto.
- Estabilidad: el software privativo a menudo se somete a pruebas rigurosas antes de su lanzamiento, lo que lo hace más estable que algunos proyectos de código abierto.
- Interoperabilidad: el software privativo a menudo se integra fácilmente con otros sistemas y software.
Desventajas del software privativo:
- Costo: el software privativo a menudo es más costoso que los proyectos de código abierto.
- Control: el software privativo está controlado por una empresa propietaria, lo que limita la capacidad de los usuarios para personalizar y modificar el software según sus necesidades.
- Transparencia: el código fuente del software privativo está protegido y no está disponible para que los usuarios lo revisen y comprendan.
- Licencia: el uso del software privativo está limitado por la licencia del software, lo que puede restringir su uso y distribución.
El Open Source permite un desarrollo mucho más rápido que el software privativo
Es cierto que el software de código abierto (Open Source) puede permitir un desarrollo más rápido en algunos casos en comparación con el software privativo. Esto se debe a varias razones:
- Accesibilidad al código fuente: En el software de código abierto, el código fuente está disponible públicamente, lo que permite a los desarrolladores comprender mejor cómo funciona el software y hacer modificaciones más rápidamente.
- Comunidad: Los proyectos de código abierto a menudo tienen una gran comunidad de desarrolladores que trabajan juntos para mejorar el software. Esto puede acelerar el proceso de desarrollo al permitir que múltiples personas trabajen en diferentes aspectos del software simultáneamente.
- Reutilización: En el software de código abierto, los desarrolladores pueden reutilizar el código existente de otros proyectos de código abierto en sus propios proyectos, lo que puede acelerar el proceso de desarrollo.
- Ciclo de retroalimentación rápido: Los usuarios del software de código abierto a menudo informan rápidamente sobre errores y problemas, lo que permite a los desarrolladores abordarlos rápidamente.
Sin embargo, no siempre es cierto que el software de código abierto permita un desarrollo más rápido que el software privativo. En algunos casos, los desarrolladores de software privativo tienen recursos y herramientas adicionales que pueden acelerar el proceso de desarrollo. Además, en algunos casos, la licencia del software de código abierto puede limitar su uso y distribución, lo que puede ralentizar el proceso de desarrollo. En general, es importante evaluar cuidadosamente las necesidades de desarrollo de un proyecto y elegir el tipo de software que mejor se adapte a esas necesidades.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Más información,
Desde luego que la compartición es fundamental como elemento constituivo del Open Source, pero tan importante como compartir es definir como se comparte. El hecho de usar licencias como la MIT impide precisamente que el software se siga compartiendo, pues no contiene restricciones sobre el uso comercial del software; esto significa que las empresas pueden tomar el software MIT, realizar cambios y venderlo como un producto propietario sin tener que compartir sus cambios o mejoras con la comunidad. El Software Libre, al imponer restricciones garantiza que la compartición se mantenga, el Open Source sirve para que el trabajo de la comunidad alimente a las empresas como Google y estas impidan la compartición del software y en definitiva la libertad de los usuarios.
Entiendo que, o bien no has escuchado el podcast, o bien no ha calado el mensaje que trataba de compartir. Sea como fuere, voy a intentarlo de nuevo.
Las licencias MIT no impiden nada de nada, porque no imponen ninguna restricción como si lo hace la GPL, tal y como tu mismo comentas. Poner restricciones lo que impide es el progreso.
Por otro lado, el único que decide que licencia poner a un software es el creador de ese software, y esto es lo que está llevando a que los desarrolladores se decanten por licencias como MIT que favorecen el crecimiento. Simplemente, las licencias como la GPL se han convertido en minoritarias, precisamente por esas restricciones que imponene a un desarrollador. Actualmente las licencias como la MIT copan el desarrollo de software y cada vez mas, mientras que las licencias GPL cada vez se utilizan de forma mas minoritaria.
Que alguien decida que el software que desarrolle partiendo de un software con licencia MIT pase a tener una licencia privativa, no implica que se deje de compartir el software. Simplemente se deja de compartir el software de este desarrollador, que tal y como comento en el podcast, tarde o temprano se dará cuenta de que no es el camino.
Poner puertas al campo nunca ha sido ni será la solución.
Entiendo lo que dices, pero lo cierto es que licenciar software es de hecho poner puertas al campo, porque las licencias son eso mismo: puertas. Con las licencias lo que decidimos es como se entra a nuestros proyectos de software y qué se puede hacer con ellos. Si tu puerta abierta permite entrar a gente que se va a llevar lo que tienes tras ellas para meterlo detrás de otra puerta cerrada, desde mi perspectiva lo que supone es estar trabajando para los ladrones en la suposición de que le estás otorgando libertad a todo el mundo. Es cierto que como el software es replicable, tú puedes seguir manteniendo tu versión de software abierto y no habrías perdido tu trabajo, pero no es menos cierto que los desarrollos posteriores que alguien va a hacer sobre ese trabajo (y el de la comunidad social en la que se inserta) pueden quedar cerrados en un coto privativo, y eso es injusto a la par de enormente frustrante.
Desde ese punto de vista, en tanto se garantiza la compartición continua, las restricciones del Software Libre son para mi superiores a las del Open Source.
Poner puertas al campo es poner restricciones, no al contrario. Cuando estás restringiendo el uso del software para determinados usos estás poniendo puertas al campo. Puertas que en realidad no impiden que sea haga lo que se tenga que hacer.
Si alguien decide llevarse el código que desarrollo bajo licencia MIT y crear un segundo desarrollo partiendo de este con otra licencia, bienvenido sea. Si mi trabajo vale para otro mejor que mejor. Si el lo quiere compartir con los demás, fantástico, pero si no lo quiere compartir, ese es su problema, y ya te digo que su error. Tal y como explico en el podcast. Y te puedo asegurar, que a mi no me genera ningún tipo de frustración.