Frameworks
Principe
Définition du terme
Traduction directe : structure, cadre, système, canevas
En informatique, un framework permet de fournir un cadre logiciel qui facilite la programmation du développeur d'applications.
Framework ou bibliothèque ?
Une bibliothèque implémente certains traitements complexes, pour éviter au développeur d'avoir à le faire lui même.
Cette complexité peut-être due :
à des aspects algorithmiques,
au fait que les navigateurs n'offrent pas tous exactement les mêmes fonctionnalités (on parle d'API cross-browser),
voire même ne les implémentent pas du tout (on parle alors de polyfill).
Ex: création robuste d'un objet XMLHTTPRequest en Javascript "brut"
var request;
try {
request = new XMLHttpRequest();
} catch(err1) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(err2) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(err3) {
request = false;
}
}
}
Création d'un objet XMLHTTPRequest en JQuery :
var request = $.ajax();
Un framework permet, en plus :
de structurer le code de l'application selon une architecture particulière (en général MVC) ;
parfois même en rendant le langage de programmation méconnaissable ("style" de programmation, "idiomes" propres au framework...).
Cependant, cette différence peut être subjective, et la frontière est parfois floue.
Note
En ce qui concerne la différence floue, JQuery est parfois considéré comme un framework, car il "transforme" effectivement le langage de manière assez importante (du code JQuery ressemble assez peu à du code Javascript classique).
Frameworks Javascript (et autres)
Angular, Backbone, Ember, Knockout, React, Qooxdoo, Vue.js, Svelte
Dojo, JQuery, Lo-Dash, Underscore, Zepto
Frameworks spécialisés: D3, QUnit
Vanilla JS ;-)
TP étude comparative de framework
Pour un des frameworks de la liste précédente, préparez une présentation de 5 minutes présentant
ses origines (qui l'a créé, depuis quand)
ses spécificités (framework ou bibliothèque),
ses points forts (ce qui vous pousserait à l'utiliser)
ses points faibles (ce qui vous découragerait de l'utiliser)
Avertissement
Ne pas reprendre des points forts/points faibles inhérents à Javascript !! Trouvez des arguments spécifiques au framework étudié
Autres sujets possibles
Node, Phantom JS
CoffeeScript, TypeScript, Processing.JS