2012-07-20 14 views
43

Duplicar posibles:
Framework vs. Toolkit vs. Library¿Cuál es la diferencia entre un marco de JavaScript y una biblioteca?

Me gustaría saber cuál es la diferencia entre un marco de JavaScript y una biblioteca mediante el uso de algún ejemplo.

Por ejemplo, jquery, backbone.js y jazmines son framework o biblioteca de JavaScript? ¿Y por qué?

¿Puede dar algún ejemplo de marco de JavaScript y una biblioteca utilizando la sentencia Don't call Us, We'll call You.

+1

No creo que haya una respuesta real a esto. Son una especie de términos superpuestos. – Peter

+0

En general, un "marco" implica un contexto de ejecución [especial], mientras que una "biblioteca" es solo una API externa que se utiliza. Sin embargo, según esta definición, un jQuery Plugin usaría el "jQuery framework" ... en cualquier caso, no votando para cerrar ya que es una pregunta blanda en su mayoría abierta. –

+0

http://chat.stackoverflow.com/transcript/message/4603815#4603815 Consulte también http://en.wikipedia.org/wiki/Software_framework – Esailija

Respuesta

50

Incluso aunque esta pregunta es muy subjetiva, mi opinión personal acerca de los dos es la siguiente:

  • Marco : esto describe una estructura dada de "cómo" debe presentar su código. Más o menos como una plantilla de código, junto con algunos ayudantes, constructores, etc. para resolver/simplificar un problema específico o poner su arquitectura en "orden". Ejemplos, "Backbone", "requireJS", "socketIO".

  • Biblioteca: Es una suite de herramientas que es altamente abstrae diferentes capas, como los navegadores de los modelos/DOM/etc también como un buen conjunto de herramientas, que ofrece una gran cantidad de herramientas y cosas muy buenas para trabajar con, que, en general, simplifica tu experiencia de codificación Ejemplos "jQuery", "MooTools", "YUI "

+1

+1 gracias por su respuesta. ¿Puedes hacer también un ejemplo con respecto a la oración "No nos llames, te llamaremos" – js999

+0

O simplemente podemos decir que JQuery es una biblioteca y JQuery Mobile es un marco :) – Sarath

+1

@jAndy por qué la documentación de Backbone dice es una biblioteca, ¿pueden explicarme aquí? Tengo curiosidad por resolver esta confusión –

0

Una biblioteca de JavaScript es una biblioteca de JavaScript pre-escrito, que permite el desarrollo fácil de aplicaciones basadas en JavaScript.

y Algunas bibliotecas de JavaScript, como YUI, se clasifican como marcos ya que muestran capacidades de pila completa y propiedades que no se encuentran en las bibliotecas de JavaScript generales.

0

JavaScript es un lenguaje de scripting.

JQuery es una biblioteca de JavaScript que maneja muchas características de uso común y también maneja las diferencias entre, por ejemplo, Internet Explorer y los navegadores compatibles con los estándares. Es algo que puede usar para reducir la cantidad de trabajo al crear aplicaciones basadas en web.

0

No existe una definición real de la diferencia entre esos dos, pero en general diría que un marco es una cosa más general de "multiherramientas" que una biblioteca, que por lo general es muy especializada.

Por ejemplo, Sylvester es una matriz y vector de matemáticas biblioteca. Es muy específico en su funcionalidad.

Un marcoPrototype como, por otro lado ofrece mucho más que sólo un conjunto limitado de funcionalidades muy especializado. Incluso puede usar o consistir en múltiples bibliotecas internamente.

Importante: Al final, las personas usan "framework" y "library" como mejor les parezca. Desafortunadamente;)

2

Un marco encapsula la funcionalidad de la aplicación común, lo que permite al desarrollador centrarse en las partes que son únicas para su aplicación. Eso significa que el desarrollador escribe fragmentos de código que son llamados por el marco cuando suceden varias cosas; Ej .: backbone.js, o jasmine. Las bibliotecas son paquetes de código que suelen ser llamados por la aplicación para realizar una tarea, como manipulación DOM o solicitudes HTTP. Ej .: jQuery.

29

Estoy de acuerdo con Jandy, en mi opinión un marcoimpone una estructura su código con el fin de hacer frente a un problema particular y una bibliotecaes un conjunto genérico de herramientas que ayudan en diversas tareas, sin tener en cuenta necesariamente el el mismo problema.

A este respecto:

  • jQuery es una biblioteca, ya que abstrae una gran cantidad de incompatibilidades del navegador, pero no impone ninguna estructura en su código.
  • underscore.js es una biblioteca porque es una colección de utilidades para manipular estructuras de datos y otros objetos.
  • backbone.js es un marco porque estructura el código del front-end para que coincida con el patrón MVC.
  • Jasmine es un marco porque estructura su código para que pueda hacer BDD fácilmente.

En cuanto a su ejemplo sugerido, los marcos se ajustan al paradigma don't call us, porque la mayoría de ellos imponen el flujo del código (una especie de inversion of control). Llamas a las bibliotecas, no llaman a tu código.

Esta es una opinión subjetiva, así que tómalo como tal.

+1

+1 gracias por su respuesta, que es muy clara y responde a mi pregunta. – js999

Cuestiones relacionadas