¿Necesitas saber de física mecánica para andar en bicicleta? Por supuesto que no. De igual manera, no necesitas saber de programación para usar aplicaciones, y la tecnología en general. Aún así, es interesante tener una noción de las cosas. Por eso vamos a contarte qué es una biblioteca y un sistema de programación, y cómo influyen en tu día a día.
Para hacer las cosas sencillas, conviene usar la metáfora de la casa. O bien ya tenemos una casa y vamos a Ikea a comprar lo que necesitemos para el diseño interior o buscamos unos planos para construir una casa con ayuda de la arquitectura y el diseño.
Biblioteca de programación o library
Pues bien, una biblioteca de programación, o library como se le dice en inglés, es como ir a Ikea. Aquí no hay que construir la casa, sino buscar ayuda con los muebles y su disposición dentro de la casa.
En este caso, no se trata de que quieras llevar a cabo el esfuerzo de crear una mesa de madera tallando un árbol y barnizandola. Simplemente, vas y compras la mesa que más te gusta. En este caso, se diría que tú tienes el control sobre la disposición de las cosas en tu casa.
De manera similar, un programador usa una biblioteca de programación donde toma pedazos de código (muebles) para llevar a su casa (su código de programación) para cambiar un poco las cosas aquí y allá. Por ejemplo, en en este reseña hablan de una aplicación web que usa un library.
Sistema de programación o framework
En contraste, un sistema de programación, o framework en inglés, es como preparar el modelo de una casa para construirla. Aquí tú tienes un conjunto de planos y algunas elecciones limitadas en cuanto a arquitectura y diseño se refiere. A diferencia con ir a Ikea o usar una biblioteca, el contratista o los planos son los que marcan la pauta: ellos están en control.
En cierta manera, los frameworks son como plantillas en donde debes colocar la información que pide el código de programación para usarla en caso de que ocurra cierto evento con la aplicación web.
Por ejemplo, si el usuario hace click en esta web y ocurre un error, enviar tal mensaje de advertencia con información adicional sobre cómo evitar el error. Por supuesto, las funciones que traen los frameworks son más complejas.
¿Cuál es la diferencia entonces? ¿Cuál usan los programadores?
Los programadores usan un término para establecer la diferencia entre ambos: inversión del control. Es decir, a nivel de código una biblioteca y un sistema de programación son similares. La diferencia está en quién tiene el control.
En el caso de las bibliotecas, el programador tiene el control. Cuando alguien usa esta herramienta, la situación es similar a cuando vas a una biblioteca física: tienes tu lugar donde lees y, cuando necesitas otro libro, vas y buscas en los estantes.
En el caso de los sistemas, el programador no tiene el control. Aquí sucede similar a estas situaciones donde debes llenar un formulario: no puedes cambiar nada, sino agregar la información que te solicitan.
Tanto los frameworks como las libraries están estrechamente relacionadas. El primero está contenido en el segundo. De modo que, el programador usa ambos en función de lo que necesite crear para su aplicación web.
React/Gatsby es un ejemplo de biblioteca/sistema de programación. Pero hay muchos más… ¡Un tema al mismo tiempo complejo que interesante!