Muchos de nosotros no seremos conscientes de esta diferencia que es realmente importante de entender durante el desarrollo. La posible respuesta a esta pregunta, si se le 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 llamante/llamado define la diferencia entre los dos términos. Es nuestro código el que llama al código de la biblioteca mientras está en el marco, es el código del marco el que llama a nuestro código. Veamos cómo.
Biblioteca
Una biblioteca proporciona un conjunto de funciones/objetos/módulos auxiliares que el código de su aplicación llama para una funcionalidad específica. Las bibliotecas generalmente se enfocan en un alcance limitado (por ejemplo, strings, IO, sockets), por lo que sus API también tienden a ser más pequeñas y requieren menos dependencias. Es solo una colección de definiciones de clase. ¿Por qué los necesitamos? La razón es muy simple, es decir, reutilizar el código, usar 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 string. Podemos llamar inmediatamente a la función findLastIndex(charToFind) de la biblioteca y pasar los caracteres cuya posición necesitamos encontrar como parámetro en la llamada a la función.
Estructura
Framework, por otro lado, ha definido 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 marco es en sí mismo una aplicación, tiene un alcance más amplio e incluye casi todo lo necesario para crear una aplicación de usuario según sus propias necesidades. Wikipedia lo deja más claro:
“En la programación de computadoras, un marco de software es una abstracción en la que el software que proporciona una funcionalidad genérica se puede cambiar selectivamente mediante un código adicional escrito por el usuario, proporcionando así un software específico de la aplicación”
Por lo tanto, la diferencia clave está en la «Inversión de control» , comúnmente llamada IoC. Cuando llamamos a un método desde una biblioteca, tenemos el control. Pero en el marco, el control se invierte, es decir, el marco nos llama. Define un esqueleto donde la aplicación define sus propias características para completar el esqueleto. Ejemplo, en Javascript, generalmente usamos 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 estamos en la biblioteca, normalmente tenemos su objeto para llamar a sus funciones o simplemente las llamamos. Ex:
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 strings, evaluación de expresiones regulares, matemáticas, etc.
- Framework: Se sabe que es un esqueleto donde la aplicación define el contenido de la operación al llenar el esqueleto. Ejemplos de marcos: sistema de aplicaciones web, administrador de complementos, sistema GUI. El marco solo define el concepto, pero una aplicación define aún más la funcionalidad que es útil para los usuarios finales.
- Inversión de control: cuando llamamos a un método desde una biblioteca, tenemos el control. Pero en el marco, el control se invierte, es decir, el marco nos llama.
La siguiente tabla explica las diferencias entre Framework y Library:
S.No | Estructura | Biblioteca |
1. | Se compone de muchas API, compiladores, programas de soporte, bibliotecas, etc. | Es una colección de módulos auxiliares, clases, objetos, funciones, código escrito previamente, etc. |
2. | Es difícil reemplazar los marcos. | Una biblioteca es fácil de reemplazar por otra biblioteca. |
3. | El desarrollo de un marco requiere mucho código que disminuye el rendimiento y aumenta el tiempo de carga. | La creación de una biblioteca requiere menos código, por lo que hay un mejor rendimiento y un tiempo de carga más rápido. |
4. | Incluir el marco sin problemas en un proyecto existente es imposible. | Las bibliotecas se pueden integrar fácilmente en proyectos existentes para agregar alguna funcionalidad específica. |
5. | Su ejemplo son AngularJS, Spring, NodeJS, etc. | Su ejemplo son JQuery, React JS, etc. |
Referencia:
Este artículo es una contribución de Ekta Goel . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA