En muchas ocasiones para dar solución a un problema, vemos que con el conjunto de librerías del framework que estamos utilizando no es suficiente, o que otras personas han encontrado una mejor solución al problema al que nos enfrentamos y la han compartido con la comunidad.
Es entonces cuando necesitamos añadir a nuestro proyecto librerías de terceros. Y, aunque como desarrolladores estemos acostumbrados a ello, este proceso no resulta para nada sencillo.
El proceso BEILU
Cada vez que añadimos una nueva librería a nuestros proyectos, repetimos el proceso que desde este momento autodenominaremos como BEILU, es decir:
- Buscar la librería o librerías que dan solución a nuestro problema
- Encontrar dentro las diferentes librerías la más adecuada para el entorno, tecnología y proyecto que estamos trabajando
- Instalar la librería y copiarla a las ubicaciones adecuadas en el proyecto
- Tras varios intentos haciéndola funcionar, Leer el manual que explica cómo funciona la librería y añadir los archivos de configuración necesarios, si es que dicho manual existiese.
- Finalmente, Utilizar la librería y poder continuar con el desarrollo del proyecto
Y BEILU es un proceso recursivo, por cada nueva versión de la librería se repiten cada uno de los pasos anteriores desde el inicio.
Las dependencias
BEILU no viene sólo. Como todo proceso que se precie, es el origen de otro, si cabe, más complejo: la gestión de dependencias. Muy probablemente la librería que hemos descargado con tanto esfuerzo no funcione por si misma, y necesite de otras librerías de terceros para su correcto funcionamiento. Puede que seamos afortunados y el creador de la misma haya decidido incluir todas las dependencias en el mismo paquete que hemos descartado. Pero muchas veces no es así y será necesario que Busquemos, Encontremos, Instalemos y Leamos el manual de cada una de las librerías antes de poder Utilizar la que descargamos inicialmente.
Es más, si necesitamos actualizar la librería que estamos utilizando a una nueva versión, es posible que incluya nuevas dependencias o nuevas versiones de las mismas, con lo cual deberemos repetir los pasos anteriores por cada cambio en las dependencias de la nueva versión.
Y si existiese una forma mejor
Fuera de los entornos de programación, ya existen métodos de distribución de software desde hace mucho tiempo, en Linux se conocen como APT, en iPhone y MAC reciben el nombre de AppStore, en Android es Android Market y dentro de muy poco en la próxima versión de Windows se dará a conocer como MarketPlace. Son repositorios online de aplicaciones, donde podemos buscar y encontrar todas las aplicaciones disponibles para estos sistemas, correctamente clasificadas y valoradas por los usuarios.
Y respecto a la distribución de librerías, en el lenguaje de programación Ruby, existe el repositorio RubyGems donde podemos encontrar componentes descargables que incluyen todo lo necesario para funcionar, incluso instalando las dependencias necesarias.
¿Es necesario cambiar de plataforma y lenguaje para obtener todos estos beneficios? No.
Desde hace algún tiempo existe una herramienta llamada NuGet y en el próximo post explicaremos como funciona y como puede cambiar nuestra manera de trabajar con librerías de terceros.
Iñaki Elcoro
* Algunas de las imágenes utilizadas en este post se encuentran bajo los términos de la licencia GPL







Enviar comentarios