GeeksforGeeks

Muchos de nosotros desconoceremos esta diferencia que es realmente importante entender durante el desarrollo. La posible respuesta a esta pregunta, si se hace, será «Framework es una colección de varias bibliotecas». Sin embargo, esta definición no es del todo cierta. «Quién llama a quién», es decir, la relación llamador/receptor, define la diferencia entre ambos términos. Es nuestro código el que llama al código de la biblioteca mientras que en el framework, es el código del framework el que llama a nuestro código. Veamos cómo.

Biblioteca

Una biblioteca proporciona un conjunto de funciones/objetos/módulos de ayuda que el código de tu aplicación llama para una funcionalidad específica. Las bibliotecas suelen centrarse en un ámbito reducido (por ejemplo, cadenas, IO, sockets), por lo que sus API también suelen ser más pequeñas y requieren menos dependencias. No es más que una colección de definiciones de clases. ¿Por qué las necesitamos? La razón es muy simple, es decir, la reutilización del código, utilizar el código que ya ha sido escrito por otros desarrolladores. Ejemplo, alguna biblioteca tiene un método llamado findLastIndex(char) para encontrar el último índice de un carácter particular en una cadena. Podemos llamar directamente a la función findLastIndex(charToFind) de la librería y pasar los caracteres cuya posición necesitamos encontrar como parámetro en la llamada a la función.

Framework

Framework, por otro lado tiene definidas funciones u objetos abiertos o no implementados que el usuario escribe para crear una aplicación personalizada. (Los usuarios de C++/Java entenderán esto ya que es muy parecido a implementar una función abstracta). Debido a que un framework es en sí mismo una aplicación, tiene un alcance más amplio e incluye casi todo lo necesario para hacer una aplicación de usuario según sus propias necesidades. La Wikipedia lo deja más claro:

«En programación informática, un framework de software es una abstracción en la que el software que proporciona funcionalidad genérica puede ser modificado selectivamente por código adicional escrito por el usuario, proporcionando así un software específico para la aplicación»

framework vs library

Así, la diferencia clave está en la «Inversión de Control», comúnmente llamada como IoC. Cuando llamamos a un método desde una librería, tenemos el control. Pero en el framework, el control se invierte, es decir, el framework nos llama a nosotros. Este define un esqueleto donde la aplicación define sus propias características para rellenar el esqueleto. Ejemplo, en Javascript, solemos usar esto:

$(document.ready(){ // this call will be done by the jquery // framework when document will be ready. function() { /* your code */ // our implementation inside the framework's function }});

Mientras que en librería, normalmente tenemos su objeto para llamar a sus funciones o simplemente las llamamos. Ej:

str = "Geeks.ForGeeks"var pos = str.lastIndexOf("."); // simply calling function of string library

Puntos importantes:

  • Biblioteca : Realiza un conjunto de operaciones específicas y bien definidas. Ejemplos : Protocolos de red, compresión, manipulación de imágenes, utilidades de cadenas, evaluación de expresiones regulares, matemáticas, etc
  • Framework: Se conoce como un esqueleto donde la aplicación define el contenido de la operación rellenando el esqueleto. Ejemplos de frameworks: Sistema de aplicación web, Gestor de plugins, Sistema de interfaz gráfica de usuario. El framework sólo define el concepto pero una aplicación define además la funcionalidad que es útil para los usuarios finales.
  • Inversión de control: Cuando llamamos a un método de una librería, tenemos el control. Pero en el framework, el control se invierte, es decir, el framework nos llama a nosotros.
    • Referencia:

      • Video Tutorial

      Este artículo ha sido aportado por Ekta Goel. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contribute.geeksforgeeks.org o enviando tu artículo por correo a [email protected]. Verás cómo tu artículo aparece en la página principal de GeeksforGeeks y ayudarás a otros Geeks.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *