Diferencia entre librería y framework
Tema: tecnología.
Una librería es un conjunto de funciones que el programador llama desde su propio código cuando las necesita, y un framework es una estructura más amplia que impone su propio flujo y llama al código del programador en los puntos que él mismo define.
Esa relación inversa se conoce como «inversión de control»: en la librería el control lo tiene el programa propio, y en el framework lo tiene el framework.
Tabla comparativa: librería y framework
| Librería | Framework | |
|---|---|---|
| Qué es | Conjunto de funciones reutilizables. | Estructura completa que organiza toda la aplicación. |
| Quién llama a quién | El código propio llama a la librería. | El framework llama al código propio. |
| Control del flujo | Lo mantiene el programador. | Lo mantiene el framework. |
| Grado de imposición | Bajo: se usa solo donde hace falta. | Alto: condiciona la estructura de todo el proyecto. |
| Ejemplo | Una librería de manejo de fechas. | Un framework completo para construir sitios web. |
Qué es una librería
Una librería es una colección de funciones ya escritas, probadas y listas para usarse, que el programador incorpora a su proyecto para no tener que resolver desde cero un problema común, como formatear fechas o comprimir un archivo. El programador decide cuándo y cómo llamar a cada función de la librería; el resto del programa sigue estructurado a su criterio.
Usar una librería impone pocas condiciones: se limita a ofrecer herramientas, y el programador conserva el control sobre el orden y la lógica general de su aplicación.
Qué es un framework
Un framework es un esqueleto de aplicación que define de antemano la estructura general del proyecto, sus fases y los puntos exactos en los que el programador debe insertar su propio código. En lugar de que el programa llame a funciones sueltas cuando lo necesita, es el framework quien controla el flujo principal y llama al código propio en el momento adecuado, un patrón que se conoce como inversión de control.
Adoptar un framework acelera el desarrollo porque resuelve de antemano muchas decisiones comunes, pero también implica seguir sus convenciones: cambiar de framework a mitad de un proyecto suele exigir una reescritura mucho más profunda que cambiar de librería.
Ejemplos que muestran la diferencia
Un programa puede usar una librería para procesar imágenes sin que eso condicione el resto de su estructura.
Al construir una aplicación sobre un framework, el desarrollador debe colocar su código en los archivos y funciones que el propio framework espera, en lugar de organizar el proyecto a su gusto.
Un mismo proyecto suele combinar ambos: un framework como columna vertebral de la aplicación y varias librerías añadidas para tareas concretas dentro de ese framework.
Cuándo usar cada término
- Usa librería cuando el código propio es quien decide cuándo llamar a una función externa concreta.
- Usa framework cuando una estructura externa organiza el proyecto completo y llama al código propio en sus propios puntos definidos.
- Comprueba quién controla el flujo principal del programa: si es tu propio código, hablas de librería; si es la herramienta externa, hablas de framework.
Preguntas frecuentes
¿Qué es la inversión de control?
Es el principio que distingue a un framework de una librería: en lugar de que el programa propio llame a las herramientas externas cuando las necesita, es la herramienta externa la que llama al código propio en los momentos que ella misma determina.
¿Un framework puede incluir librerías dentro de sí?
Sí, es habitual que un framework se construya reutilizando varias librerías internamente, además de permitir que el desarrollador añada sus propias librerías adicionales para tareas concretas.
¿Por qué cambiar de framework es más costoso que cambiar de librería?
Porque el framework condiciona la estructura general de todo el proyecto, mientras que una librería se usa en puntos concretos; sustituir el framework suele obligar a reorganizar buena parte del código, mientras que sustituir una librería afecta solo a las partes que la usaban.