Programación

Biblioteca o framework: cuál es la diferencia

Usas una biblioteca; un framework te usa a ti. La diferencia, con ejemplos, y cómo elegir sin complicarte.

Enviar por WhatsApp

Cuando empiezas a programar oyes constantemente los términos «biblioteca» (o «librería») y «framework». Se parecen, pero no son lo mismo. La diferencia está en quién controla el flujo del programa.

Quién controla el flujo del programa.Biblioteca: Tú llamas a sus funciones; sí, Más libertad. Framework: Él llama a tu código; sí, Estructura ya definidaCOMPARATIVABibliotecaTú llamas a sus funcionesMás libertadFrameworkÉl llama a tu códigoEstructura ya definida
Quién controla el flujo del programa.

Biblioteca: tú llamas al código

Una biblioteca es un conjunto de funciones listas para usar. Tú escribes tu programa y, cuando necesitas algo concreto, llamas a una de sus funciones: dar formato a una fecha, calcular una raíz, hacer una petición web. Tú decides cuándo y cómo.

Ejemplos: una biblioteca para manejar fechas, para dibujar gráficos o para hacer peticiones HTTP.

Framework: el código te llama a ti

Un framework es una estructura completa que impone cómo organizar tu aplicación. Tú rellenas los huecos que prevé (tus páginas, tus modelos, tus reglas) y es el framework el que llama a tu código en el momento oportuno. A esto se le llama inversión de control.

Ejemplos: Django (Python) o Laravel (PHP) para aplicaciones web completas.

Antes de añadir una dependencia.Sí: Que se mantenga. Sí: Su documentación. Sí: Su licencia. Sí: Que de verdad la necesitasLISTA RÁPIDAMiraQue se mantengaSu documentaciónSu licenciaQue de verdad la necesitas
Antes de añadir una dependencia.

Zona gris

La frontera no siempre es nítida:

  • React se presenta como una biblioteca para construir interfaces, pero en la práctica impone una forma de trabajar. Otras herramientas se construyen sobre él para formar frameworks completos.
  • Algunos frameworks son tan pequeños que se parecen a una biblioteca.

No merece la pena discutir la etiqueta: lo importante es entender cuánta libertad y cuántas reglas te da cada herramienta.

Cómo elegir

  • Para aprender, usa primero el lenguaje «a pelo» o con pocas bibliotecas: entenderás qué hace cada pieza antes de que alguien lo haga por ti.
  • Para un proyecto pequeño, una o dos bibliotecas suelen bastar.
  • Para una aplicación grande, un framework te ahorra decisiones y te da una estructura que otras personas ya conocen.
  • Mira siempre su mantenimiento (si se actualiza), su comunidad, su documentación y su licencia, como se explica en software libre, código abierto y gratuito.
Cuánto decide la herramienta por ti.Lenguaje solo (Control total) / Bibliotecas (Funciones a tu elección) / Framework (Impone la estructura)POR CAPASDe menos a más estructuraLenguaje soloControl totalBibliotecasFunciones a tu elecciónFrameworkImpone la estructura
Cuánto decide la herramienta por ti.

Dependencias: úsalas con cabeza

Cada biblioteca que añades es código de otras personas del que dependes: puede tener errores, dejar de mantenerse o abrir fallos de seguridad. Añade solo lo que necesitas y mantenlas actualizadas.