Est-ce que jquery est une bibliothèque ou un framework javascript? [fermé]


121

Ici, jquery est mentionné dans la catégorie framework: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Est-ce que jquery est une bibliothèque ou un framework javascript?


40
La bibliothèque d'une personne est le cadre d'une autre personne.
nnnnnn

1
Ceci est hors sujet ici car chaque réponse est également valable: "Quel est votre ______ préféré?" . Aussi, qu'importe si nous sommes tous une bibliothèque ou un framework?
EJoshuaS - Réintégrer Monica le

Réponses:


169

Une bibliothèque. Selon la page d'accueil , et avec laquelle je suis d'accord.

Un framework est quelque chose qui force généralement une certaine manière d'implémenter une solution, alors que jQuery est juste un outil pour faciliter l'implémentation de ce que vous voulez faire.


55
+1. Une bibliothèque est quelque chose que vous appelez depuis votre programme. Un cadre est quelque chose qui fait appel à votre programme.
Thilo

1
Pour une comparaison entre la bibliothèque et le framework, voir "Inversion of Control" stackoverflow.com/a/3057818/2144912
cheshireoctopus


19

Bien sûr, c'est une bibliothèque javascript. Mais que ce soit un cadre ou non, je pense simplement que ce n'est pas un cadre. Jetez un oeil sur la définition wikipedia du logiciel-framework :

Il s'agit d'un ensemble de bibliothèques de logiciels fournissant une interface de programmation d'application définie.

Et jQuery n'est qu'une bibliothèque unique. Après cela, il dit:

Les cadres contiennent des caractéristiques distinctives clés qui les séparent des bibliothèques normales:

  1. inversion de contrôle - Dans un framework, contrairement aux bibliothèques ou aux applications utilisateur normales, le flux de contrôle global du programme n'est pas dicté par l'appelant, mais par le framework.

Donc, je pense que ce n'est pas un cadre.


9

Selon le site Web angularjs

  • une bibliothèque - un ensemble de fonctions utiles lors de l'écriture d'applications Web. Votre code est en charge et il appelle dans la bibliothèque lorsque
    lui semble. Par exemple, jQuery.
  • frameworks - une implémentation particulière d'une application Web, où votre code remplit les détails. Le framework est en charge et il appelle votre code lorsqu'il a besoin de quelque chose de spécifique à l'application. Par exemple, durandal, braise, etc.

5

Cadre et librairie ne sont pas nécessairement des termes qui s'excluent mutuellement. Framework est généralement une bibliothèque ou une collection de bibliothèques.

À proprement parler, jQuery est une bibliothèque, mais, dans une certaine mesure, elle répond à la définition d'un framework logiciel. Bien que beaucoup soutiennent que jQuery ne répond pas assez strictement à la définition d'un framework logiciel, le fait est qu'aucun autre framework JavaScript ne répond complètement à la définition d'un framework non plus.

L'une des caractéristiques déterminantes d'un framework logiciel est que son code est protégé des modifications. En JavaScript, ce n'est clairement pas le cas. Toutes les bibliothèques ou frameworks qui peuvent être appelés dans votre code côté client sont modifiables, bien qu'il serait contraire aux meilleures pratiques de les modifier. Par conséquent, s'il est permis d'appeler Bootstrap ou AngularJS un framework, il n'y a aucune raison pour que jQuery ne puisse pas non plus être appelé un framework. Ce lien contient une explication plus détaillée de la façon dont jQuery répond aux critères pour être appelé un framework.

Peut-être que la meilleure explication de la raison pour laquelle jQuery est plus un framework qu'une bibliothèque est le fait qu'en tant que développeur, vous pouvez choisir de ne pas utiliser ses fonctionnalités de type framework. Vous pouvez, par exemple, mélanger une simple instruction jQuery avec une instruction JavaScript standard sur la même ligne. AngularJS et Bootstrap ne vous permettent généralement pas de faire cela. Par conséquent, la réponse précise que jQuery soit un framework ou non est "cela dépend si vous avez choisi de l'utiliser comme framework ou non".


2

Je suis d'accord avec toutes les réponses ici que jQuery lui-même est en effet une bibliothèque, pas un framework. Comme le précise la réponse de Saeed, l'une des principales caractéristiques distinctives est l'inversion du contrôle. Vous pouvez cependant utiliser la fonctionnalité de jQuery pour créer votre propre framework.

Exemples: il existe des projets construits sur jQuery qui sont définis comme des frameworks: jQuery Mobile: A Touch-Optimized Web Framework , JavaScriptMVC et sammy.js pour n'en nommer que quelques-uns.

Il existe également d'autres bibliothèques construites au-dessus de jQuery, comme l' interface utilisateur jQuery

Une partie de cela semble être une sémantique lors de la définition de ce qu'est une bibliothèque par rapport à un framework, mais ces exemples aident à tracer la ligne pour moi.


1

Si nous parlons d'inversion de contrôle, dont presque tout le monde dans le fil de discussion ci-dessus parle alors jQuery est un FRAMEWORK.

Il a IOC par exemple lorsque nous écrivons la fonction $ (document) .ready {} ... c'est le conteneur qui appelle cette méthode et nous mettons simplement notre code entre accolades. Nous ne sommes pas l'appelant de cette méthode et donc "Inversion of Control"

De cette façon, jQuery est un CADRE.


1
Meh, la plupart des bibliothèques de taille fournissent au moins une sorte de méthode de rappel vaguement dans un certain but. Vous pouvez écrire beaucoup de code jQuery sans jamais compter sur ready().
Nathan Tuggy

@NathanTuggy Alors pourquoi même la discussion détaillée sur Framework vs Lib parle d'IOC. Si c'est là, c'est là. Pourquoi parler de «se fier» ou de «ne pas se fier».
pinkman

Parce que l'IoC de type framework se caractérise par la nécessité de l'utiliser. Pas la possibilité de l'utiliser, à volonté, de manière spécifique, à la carte. Dans un framework, vous n'avez pas le choix: le contrôle est inversé.
Nathan Tuggy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.