🥊 Framework vs Librería

Cuando nos adentramos en el mundo del desarrollo de software queremos construir aplicaciones mucho más rápido y las librerías y frameworks nos ayudan. Pero ¿cuándo deberías usar una librería y cuándo un framework? En este artículo te enseñamos para que sirven, cuales son sus ventajas y en que casos debes usarlos.

Diseño web
8 minutos
Hace 5 años
🥊 Framework vs Librería

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

Seguramente si ya tienes un tiempo en el mundo de la programación tienes muy clara la diferencia entre framework y librería. Sin embargo, si estás empezando puede ser que estos términos te confundan. No te preocupes, en este artículo comprenderás con claridad la diferencia entre ellos.

“No te repitas a ti mismo”

Cuando comienzas en la programación, es normal que repitas mucho código (todos empezamos así), nos ponemos en plan “Bart Simpson”, programando y resolviendo problemas, escribiendo el mismo código en varios bloques que hacen lo mismo.

Las computadoras son expertas en hacer tareas repetitivas, pero nosotros no (de hecho es tedioso), por lo que surge el principio DRY (“Don’t repeat yourself”, o en español “No te repitas a ti mismo”).

Si hay una funcionalidad que estás usando de forma recurrente en el código, empaquétala, y crea una función que englobe a varias funciones que necesites resolver. Así, solo deberás llamar a la función que creaste, pasándole datos que necesites, y listo, no necesitas repetir código.

Te daré un ejemplo práctico para que lo entiendas mejor.

Te encargan desarrollar un carrito de compras, y te das cuenta que estás repitiendo el mismo código, así que creas la función:

const addToCart(obj){
	// pasos para agregar al carrito()
}

Le pasas un objeto (producto) como parámetro (con sus datos, precios, etc) y listo, no necesitas repetir el mismo código. Cada vez que necesites agregar un producto al carrito, ejecutas esta función.

A medida que sigues desarrollando, te das cuenta que necesitas realizar algunos ajustes. Descubres que el cliente se puede molestar si realiza su compra y luego le avisan que no hay stock. Por lo que primero debes validar el stock antes de agregar un producto al carrito.

Creas la siguiente función:

const addToCart(obj){
	// pasos para agregar al carrito()
	// validar stock()
}

Luego notas que debes sumar el total de los productos del carrito, y creas la función:

const addToCart(obj){
	// pasos para agregar al carrito()
	// validar stock()
	// sumarTotal()
}

También empiezas a darte cuenta que si vendes un producto, debes disminuir la cantidad de stock. Además, dependiendo del país del usuario, debes cambiar la moneda de pago.

Creas la siguiente función:

const addToCart(obj){
	// pasos para agregar al carrito()
	// validar stock()
	// sumarTotal()
	// disminuirProductoDeStock()
	// cambiarMoneda()
}

Finalmente con esta función, tienes todo en un solo lugar, por lo que si quieres modificar algo, solo llamas a la función interna que necesites, sin volver a repetir código.

Cada vez que empaquetas funcionalidades, estás creando una librería.

¿Qué es una Librería?

Es un conjunto de funcionalidades, que resuelven necesidades específicas del proyecto, empaquetadas y reutilizables.

El ejemplo del carrito de compras que vimos anteriormente, solo nos servirá para nuestro proyecto, por lo que su uso es para algo muy específico. Hay librerías que se pueden utilizar para proyectos de forma general.

JQuery, es una librería que fue muy popular porque facilitó el desarrollo en JavaScript para crear funcionalidades que requerían mucho código repetitivo. Esta librería, hacia todo el "trabajo sucio" por ti, y podía ejecutarse en cualquier navegador. Pero en los últimos años, JavaScript permite realizar las mismas funcionalidades de forma nativa, por lo que su uso ya no es tan extendido.

En EDteam descubrimos que siempre usábamos la mismas características en la maquetación web, por lo que creamos la libreria EDgrid (Sass/CSS para construir layouts web responsive) Usa la librería en: https://ed-grid.com

Una de las librerías más usadas en proyectos web, es React.JS (apoyada por Facebook).

"Si te interesa aprender más sobre React.JS y desarrollar el frontend de tus apps de forma rápida y ágil, te invitamos al Curso: React Desde Cero"

Lo genial de las librerías, es que las puedes combinar con otras, por ejemplo:

  • Necesito una librería que me ayude a manejar las fechas (usas la librería de fechas)
  • Necesito una librería que haga drag and drop (usas la librería drag and drop)
  • Necesito una librería para manejar el DOM (usas la librería DOM)

Y vas formando la estructura de tu proyecto, como más te guste, en el orden que tú quieras.

Esta libertad de elegir la estructura de tu proyecto, va de la mano con que siempre debas controlar la compatibilidad de cada una de ellas.

¿Qué es un Framework?

Cuando necesitas desarrollar un proyecto, con una estructura definida, y que la compatibilidad de sus funcionalidades esté asegurada, es recomendable usar un Framework.

Un framework te da toda la estructura para un proyecto completo, desde el inicio hasta el final, integrando funcionalidades sin depender de librerías externas, por ejemplo:

  • Si necesitas validar formularios, el framework te trae la validación de formularios.
  • Si necesitas imprimir datos en pantalla, el framework te trae la forma de imprimir esos datos.

Además un framework asegura la compatibilidad entre sus componentes y te da el marco de cómo debes trabajar. No tienes tanta libertad como si usaras una librería, pero tienes todas las soluciones empaquetadas que te dicen como se debe hacer el proyecto e incluso como mandar a producción, mientras que con las librerías tienes que ir armando el proyecto pieza por pieza.

Algunos de los frameworks más populares son Angular (uno de los más utilizados en el desarrollo frontend), Vue (uno de los más queridos por la comunidad) y Laravel el framework de PHP. Y todos los puedes aprender desde cero en EDteam 😉.

¿Entonces cuál debo elegir?

Un framework te limita la flexibilidad, pero a cambio te da estabilidad y las herramientas que necesitas con un entorno de trabajo ya preparado. Mientras que una librería te da más libertad porque puedes usar las librerías que quieras pero a cambio tienes que asegurar la compatibilidad y crear tu propio entorno.

Ninguno es mejor que otro, solo son enfoques diferentes al momento de trabajar.

Si todavía tienes dudas sobre que librería o framework elegir, tienes que ver este taller: ¿Cómo elegir entre React, Angular y Vue?

Te resumimos todo lo que te enseñamos en el artículo en esta infografía.

Tú también puedes aprender a crear tus infografías y viralizar tu contenido con el Taller: Diseña infografías que impacten

¿Quieres aprender más de los Frameworks y librerías? Mira este video en nuestro canal de YouTube 📺 Framework vs Librería

Espero haber aclarado tus dudas, si tienes preguntas o quieres aportar al tema puedes hacerlo en los comentarios, bye.

Comentarios de los usuarios