Home Tecnología ¿Por qué desarrollar bibliotecas libres? Explicado con LEGOS

¿Por qué desarrollar bibliotecas libres? Explicado con LEGOS

0
¿Por qué desarrollar bibliotecas libres? Explicado con LEGOS

Hola, soy Gonzalo y soy ingeniero que desarrolla aplicaciones móviles en TEEB Health. Te voy a platicar sobre un problema muy común que sucede en el ambiente de TI (Tecnologías de la información) dándote ejemplos con Flutter, que es un SDK (Kit de desarrollo de software por sus siglas en inglés) desarrollado por Google que nos permite crear aplicaciones multiplataforma, es decir, escribes el código una vez y puede correr en teléfonos Android, iPhone, computadoras y como páginas web.

Al desarrollar software, no es necesario reinventar la rueda cada que hacemos un nuevo proyecto, por ejemplo, si ya sé que en cada nueva aplicación necesito tener acceso al GPS o necesito cierto tipo de botones, no voy a programar esa funcionalidad desde cero para cada proyecto, sino voy a buscar la manera de reutilizar el trabajo ya hecho y poder implementarlo tantas veces como sea necesario.

Te pongo un ejemplo con bloques LEGO: Si quiero construir un castillo, puedo construirlo bloque por bloque y tardar mil años, o buscar en internet cosas ya hechas que muchas personas ya han querido realizar antes, es decir, una solución a un problema común (una cama, una cocina, una alberca…) y meterlo dentro de lo que estoy haciendo. Traduciendo esto, estoy implementando paquetes/bibliotecas externos dentro de mi proyecto.

Si necesitamos alguna funcionalidad, podemos ir a los repositorios de paquetes oficiales y ahí buscar alguna biblioteca que se ajuste a nuestras necesidades, o bien, podemos revisar el código fuente y así obtener inspiración o parte del código para replicar la funcionalidad deseada. Regresando al ejemplo de LEGOS, si encuentro un paquete con todo el dormitorio pero sólo necesito un buró, no voy a tomar todo lo que no me sirve.

Viéndolo del lado contrario, ¿qué beneficios tiene desarrollar estos paquetes libres?

Hay varias razones y, contrario a lo que puede parecer a simple vista que es regalar nuestro trabajo, quien desarrolla la biblioteca/paquete recibe más de lo que da a la comunidad.

 

Mejorar la calidad de tu código

Al ser público y de libre acceso, varias personas estarán utilizando el paquete y puede que descubran mejores formas de implementar tu idea, entonces estarás recibiendo constante feedback que te ayudará a pulir tus conocimientos.

Puede que hayas acomodado mal ciertos bloques o estés “desperdiciando” LEGOS sin darte cuenta, pero alguien te echa una mano echándole un ojo a los planos.

Asimismo, es importante mencionar en el Readme del proyecto cómo pueden contribuir las personas que así lo deseen, de esta forma habrá más organización y manos dispuestas a colaborar. Recuerda que no todo es referente a desarrollo, también puedes pedir ayuda con traducciones, diseños, difusión, pruebas y un sinfín de temas que pueden ser tus áreas de oportunidad o simplemente no tengas el tiempo necesario para hacerlo tú mismo.

¿Cómo te gustaría que te ayuden a construir tus paquetes de LEGOS? ¿Cómo tienen que acomodar cada bloque de manera que sea productiva la ayuda? ¿Qué otras funcionalidades le quieres agregar al paquete de LEGO? Por ejemplo, “Quiero construir una puerta con doble cerrojo porque la seguridad es muy importante en mi mansión, aún necesito ayuda porque no tiene una mirilla pero hay que tomar en cuenta que los habitantes son bajitos y la puerta muy alta, por lo que no puede quedar la mirilla muy arriba. Una vez que esté terminado este paquete cualquier persona podrá utilizarlo no solo para construir mansiones, sino casas de campo, escuelas , hospitales y todo lo que puedan imaginar”.

 

Obtener audiencia / reconocimiento

Cada paquete que se encuentre en un repositorio oficial tiene una reputación dependiendo de la cantidad de personas que lo han implementado, qué tan útil ha sido y qué otras opciones existen para realizar lo mismo. En el repositorio oficial de Flutter https://pub.dev/ (mi favorito), desde que ingresas a la página oficial encuentras este ranking con los “Favoritos de Flutter”, los paquetes más populares, los que agregan nuevas funcionalidades a Flutter y otras categorías.

Además, al entrar a la descripción de cada uno, se muestra un encabezado con toda la información de su reputación y un enlace al repositorio del dueño donde se encuentra alojado dicho Flutter. Recuerda que, como desarrollador, este es tu portafolio donde muestras al mundo el trabajo que has realizado.

Y si no eres desarrollador, imagina un repositorio como una página donde guardas los planos de tus paquetes de LEGOS y así las demás personas pueden ver cómo los construiste.

Asimismo, hay reconocimientos que otorga la comunidad y en ocasiones, las mismas empresas que desarrollan cada tecnología. Un excelente ejemplo es el Google Developer Expert, un reconocimiento entregado por dicha empresa a las personas que tengan un expertis ejemplar en alguna de sus tecnologías.

Siguiendo el ejemplo de los LEGOS, imagina que la empresa da reconocimientos en las siguientes categorías:

  • Quién ha utilizado los LEGOS para innovar 
  • Quién da a conocer LEGO con otras personas que siguen construyendo con simple plastilina 
  • Quién ha encontrado una nueva forma más eficiente de construir con LEGOS

Contribuir y devolver a la comunidad

Viendo el lado altruista, siempre recibimos lo que damos. Actualmente hay miles, si no es que millones de paquetes que nos ahorran varias horas de trabajo y no fueron creados por arte de magia. Fueron hechos por personas como tú y como yo que tenían problemas repetitivos y decidieron compartir su solución con los demás.

El retribuir, unas pocas horas de trabajo puede ser relativamente poco para el que lo hace, pero muy benéfico para las personas que utilizan ese resultado. Como dirían los 3 mosqueteros “Todos para uno, y uno para todos”

Estaría cool que te agradezcan por ayudar indirectamente a construir la mansión de LEGOS de alguien más, ¿no crees? 

 

Gonzalo Aldana

Ingeniero en Software y Sistemas Computacionales

Baseflow. (2021). Flutter Geolocator Plugin # [Internet]. pub.dev. Disponible en: https://pub.dev/packages/geolocator

 

#InformaTEEB #BlogTEEB #TEEB #OpenSource #SoftwareLibrary #LEGO

LEAVE A REPLY

Please enter your comment!
Please enter your name here