Ja­vaS­cript (ou JS) est un langage de script avec lequel des éléments HTML dy­na­miques peuvent être mis en place sur le na­vi­ga­teur. Ce langage est adapté à la fois à la pro­gram­ma­tion orientée objet et fonc­tion­nelle. Ja­vaS­cript comprend des éléments pré­dé­fi­nis (c’est-à-dire des éléments de données avec des pro­prié­tés ou méthodes par­ti­cu­lières) pour les accès à un site Web. Il est désormais possible de trouver des ins­truc­tions per­ti­nentes et utiles dans diverses bi­blio­thèques Ja­vaS­cript (en anglais : Ja­vaS­cript Libraries) et dans les fra­me­works. Nous vous pré­sen­tons ceux qui ren­contrent le plus de succès auprès des in­ter­nautes.

Bi­blio­thèques vs. Fra­me­works

Il convient de dis­tin­guer ces deux termes. Pourtant, le terme bi­blio­thèque lo­gi­cielle (ou library en anglais) est souvent utilisé comme synonyme de framework. Il existe toutefois des dif­fé­rences de base entre les bi­blio­thèques et les fra­me­works.

Les bi­blio­thèques

Une bi­blio­thèque est un ensemble de fonctions fournies en dé­ve­lop­pe­ment, que ce soient des classes ou un ensemble de fichiers objets. Les bi­blio­thèques de pro­grammes com­pren­nent toujours des sous-pro­grammes qui fa­ci­li­tent le travail avec des outils d’aide à la pro­gram­ma­tion. A l’inverse des fra­me­works, les bi­blio­thèques sont plutôt orientées à des fins précises et com­pren­nent toutes les fonc­tion­na­li­tés dont on peut avoir besoin. La bi­blio­thèque Ja­vaS­cript D3.js sert par exemple à vi­sua­li­ser des données à l’aide de tableaux, de dia­grammes et de sta­tis­tiques. Il en va de même pour les éléments gra­phiques plus complexes, comme les ani­ma­tions ou les éléments in­te­rac­tifs. Les bi­blio­thèques dépendent toujours du logiciel aux­quelles elles sont assignées et ne peuvent pas être utilisées in­dé­pen­dam­ment de ce même logiciel.

Les fra­me­works

Les fra­me­works (cadre de travail ou boîte à outils) n’est pas un programme in­dé­pen­dant, mais plutôt un ensemble cohérent de com­po­sants (comme les bi­blio­thèques et les classes par exemple). Les fra­me­works cons­ti­tuent l’ar­chi­tec­ture lo­gi­cielle d’une ap­pli­ca­tion et con­di­tion­nent con­si­dé­ra­ble­ment le processus de dé­ve­lop­pe­ment. Les fra­me­works com­pren­nent dif­fé­rents modèles de con­cep­tion (gé­né­ra­le­ment sous forme de plusieurs bi­blio­thèques) et servent au dé­ve­lop­pe­ment de nouvelles ap­pli­ca­tions in­dé­pen­dantes. Un exemple de framework populaire est Zend pour PHP, qui est utilisé entre autres dans le logiciel de boutique en ligne nommé Magento et par l’outil d’analyse en ligne Piwik.

Inversion of Control

Une autre dif­fé­rence entre les fra­me­works et les bi­blio­thèques repose sur la manière de les manier. Avec les bi­blio­thèques, le code des pro­gram­meurs dépend d’un logiciel de pro­gram­ma­tion. En ce qui concerne les fra­me­works, ceux-ci fonc­tion­nent avec une inversion de contrôle (« Inversion of Control ») : le code est intégré dans des struc­tures pré­dé­fi­nies du framework et peut être utilisé à tout moment. En bref, les bi­blio­thèques sont appelées par le programme, alors qu’un framework spécifie le programme.

Bli­blio­thèques et fra­me­works Ja­vaS­cript

Le noyau de pro­gram­ma­tion de Ja­vaS­cript est re­la­ti­ve­ment épuré et convient tout à fait à l’ac­ti­va­tion dans le na­vi­ga­teur. Des problèmes avec le DOM (Document Object Model) peuvent cependant surgir. Le DOM, c’est le modèle objet de document, qui permet de codifier la manière dont un script peut accéder à une structure de document et dé­ter­mi­ner sa pré­sen­ta­tion. Les fra­me­works et les bi­blio­thèques Ja­vaS­cript se res­semblent dans la mesure où les deux outils fa­ci­li­tent le travail des dé­ve­lop­peurs dans certains domaines de la pro­gram­ma­tion. Les ex­ten­sions Ja­vaS­cript pré­sen­tées ci-dessous sont toutes dis­po­nibles en té­lé­char­ge­ment gratuit.

Les bi­blio­thèques Ja­vaS­cript les plus po­pu­laires

Les bi­blio­thèques Ja­vaS­cript sont des ins­truc­tions de code réu­ti­li­sables qui peuvent être utilisées pour assigner certaines pro­prié­tés et fonctions (par exemple pour un site Web). La bi­blio­thèque Ja­vaS­cript la plus connue est jQuery et propose une large palette de fonctions. Mais d’autres al­ter­na­tives peuvent aussi être utiles.

jQuery

La bi­blio­thèque jQuery possède une palette de fonc­tion­na­li­tés très étendue et c’est la bi­blio­thèque Ja­vaS­cript la plus utilisée. L’une des raisons de son succès est le fait que le code est adapté à de très nom­breuses ex­ten­sions. La bi­blio­thèque open-source fonc­tionne également avec de nombreux CMS (Content Ma­na­ge­ment System) comme WordPress, Drupal ou Joomla!. JQuery est prin­ci­pa­le­ment utilisé comme une interface pratique pour DOM et offre diverses fonctions : les sé­lec­teurs CSS3 fa­ci­li­tent la sélection et la ma­ni­pu­la­tion des éléments du site Web. JQuery est aussi apprécié pour sa capacité à intégrer les requêtes Ajax (requêtes http sans re­char­ge­ment du site).

Avantages In­con­vé­nients
Support Ajax Peut être très lent par rapport à CSS
Très populaire Tend à créer un code spaghetti
Grande bi­blio­thèque Du fait de nouvelles fonctions Ja­vaS­cript, il est devenu par­tiel­le­ment superflu.
Facilité d’uti­li­sa­tion
Nombreux plugins

jQuery UI

jQuery UI est une extension gratuite de jQuery. Cette extension vise à créer et ad­mi­nis­trer une interface uti­li­sa­teur (UI) de sites Web et d’ap­pli­ca­tions Web. jQuery UI est avant tout axé sur la con­cep­tion simple des in­te­rac­tions et de divers effets. Diverses fonc­tion­na­li­tés per­met­tent, entre autres, le glisser-déposer ou bien le di­men­sion­ne­ment des éléments du site Web par exemple, tout comme des ani­ma­tions et des widgets (Au­to­com­plete, Slider, Da­te­pi­cker, etc.). L’éditeur graphique The­me­Rol­ler permet de créer ses propres thèmes et de per­son­na­li­ser ceux qui sont déjà existants grâce à une structure modulaire.

Avantages In­con­vé­nients
Facilité d’uti­li­sa­tion grâce aux Widgets Le dé­ve­lop­pe­ment est lent
The­me­Rol­ler Il requiert jQuery

Dojo Toolkit

Dojo Toolkit est avant tout adapté à la création d’ap­pli­ca­tions Web et de contenus Web dy­na­miques. En tant que l’une des plus anciennes bi­blio­thèques Ja­vaS­cript encore per­ti­nente sur le marché, elle offre un large éventail de fonctions. Les com­po­sants les plus im­por­tants de la boîte à outils sont le programme principal (Dojo) et Dijit, une boîte à outils pour les in­ter­faces uti­li­sa­teurs gra­phiques. En outre, vous pouvez utiliser des widgets pré­dé­fi­nis pour intégrer des éléments dans le site Web en création. Dojo supporte aussi DOM et Ajax.

Avantages In­con­vé­nients
Facilité d’uti­li­sa­tion grâce aux Widgets Pas si facile à maîtriser, à apprendre
Support Ajax Le dé­ve­lop­pe­ment est lent
Bi­blio­thèque complète et modulaire

React

React a été utilisé pour la première fois dans Facebook en 2011. Puis publié en 2013 en open source. Il s’agit d’une autre bi­blio­thèque Ja­vaS­cript, avec laquelle il est possible de créer une interface uti­li­sa­teur. La par­ti­cu­la­rité de React est qu’il peut être utilisé non seulement dans le client Web, mais aussi sur le serveur ou dans le dé­ve­lop­pe­ment d’ap­pli­ca­tions. Ceci est dû à l’uti­li­sa­tion d’un DOM virtuel, qui facilite également le test des ap­pli­ca­tions Web. De plus, la bi­blio­thèque Ja­vaS­cript convainc de nombreux dé­ve­lop­peurs avec son flux de données uni­di­rec­tion­nel : cette tech­no­lo­gie garantit un code stable, car les chan­ge­ments dans le code hié­rar­chique de niveau inférieur ne peuvent pas in­fluen­cer le code supérieur. C’est seulement dans le sens inverse que les chan­ge­ments peuvent avoir un impact.

Avantages In­con­vé­nients
Virtual DOM Difficile à apprendre
Flux de données uni­di­rec­tion­nel
Rendu côté serveur
Pour les ap­pli­ca­tions mobiles

Zepto

Zepto est très léger. A l’inverse, jQuery est im­pres­sion­nant en termes de taille, et c’est aussi un facteur qui dissuade de nombreux dé­ve­lop­peurs. La bi­blio­thèque Ja­vaS­cript la plus connue est trop vo­lu­mi­neuse pour certains uti­li­sa­teurs. Zepto est mi­ni­ma­liste, se charge plus ra­pi­de­ment et prend moins de place ; c’est pourquoi, il est prin­ci­pa­le­ment utilisé pour les ap­pli­ca­tions mobiles. Afin de conserver une taille de fichier réduite, Zepto économise par exemple sur la com­pa­ti­bi­lité avec les anciens na­vi­ga­teurs. Des modules sup­plé­men­taires sont né­ces­saires pour Ajax et les ani­ma­tions.

Avantages In­con­vé­nients
Très léger Ne supporte pas les anciens na­vi­ga­teurs
Simple à apprendre, à maîtriser Ajax et les ani­ma­tions uni­que­ment via des modules sup­plé­men­taires
Peu d’avantages face à jQuery

CreateJS

Il ne s’agit pas d’une bi­blio­thèque unique. En effet, CreateJS est avant tout une suite composée de quatre bi­blio­thèques dif­fé­rentes : EaselJS (gra­phiques et in­te­rac­ti­vité), TweenJS (ani­ma­tions), SoundJS (audio) et PreloadJS (pre­loa­ding). Celles-ci, à leur tour, ne sont pas in­ter­dé­pen­dantes. Cela signifie que vous n’avez pas besoin d’im­plé­men­ter les quatre bi­blio­thèques dans un seul projet, si vous ne souhaitez en utiliser qu’une pour votre projet. Il y a aussi quelques outils pour faciliter le travail avec les bi­blio­thèques Ja­vaS­cript. L’accent est mis sur le dé­ve­lop­pe­ment d’ap­pli­ca­tions HTML5 et Flash. En général, l’équipe de CreateJS travaille en étroite col­la­bo­ra­tion avec Adobe. C’est pourquoi, il existe des outils pour garantir que la suite puisse fonc­tion­ner par­fai­te­ment avec les produits Adobe.

Avantages In­con­vé­nients
Bi­blio­thèques in­dé­pen­dantes Petite com­mu­nauté
Outils sup­plé­men­taires
In­té­gra­tion dans Adobe Animate

Aperçu des bi­blio­thèques Ja­vaS­cript

jQuery jQuery UI Dojo Toolkit React Zepto CreateJS
Année de pu­bli­ca­tion 2006 2007 2005 2013 2010 2012
Main­te­neur JS Foun­da­tion JS Foun­da­tion Dojo Foun­da­tion Facebook Thomas Fuchs gskinner.com
Licence MIT MIT BSD/AFL MIT MIT MIT
Con­tri­bu­teurs GitHub environ 270 environ 300 environ 100 environ 1.100 environ 180 environ 40
Par­ti­cu­la­ri­tés Bi­blio­thèque la plus populaire Orienté pour GUI Orienté pour les ap­pli­ca­tions mobiles Virtual DOM Minimal In­té­gra­tion dans Adobe Animate

Les fra­me­works Ja­vaS­cript les plus po­pu­laires

Il existe bien plus de bi­blio­thèques Ja­vaS­cript que de fra­me­works. Ceux-ci sont avant tout adaptés aux ap­pli­ca­tions Web complexes. Les deux outils les plus utilisés sont AngularJS etEmber.js.

AngularJS

Ce Framework est sans aucun doute celui qui compte la com­mu­nauté la plus large. AngularJS sert à créer à l’instar de son principal con­cur­rent la bi­blio­thèque de Facebook : React, des ap­pli­ca­tions Web d’une seule page (qui ne comptent qu’un seul document HTML). Grâce à MVVM (Model View ViewModel), il est possible de dé­ve­lop­per des ap­pli­ca­tions Web conçues pour interagir avec les uti­li­sa­teurs. AngularJS rend l’ap­pli­ca­tion Web côté client. Le framework se base sur jQuery Lite, une variante plus épurée de la célèbre bi­blio­thèque Ja­vaS­cript  jQuery.

Avantages In­con­vé­nients
Très grande com­mu­nauté Remplacé entre-temps par Angular
Partie de la pile lo­gi­cielle MEAN Obstacles à l’entrée élevés

Angular

Angular est parfois nommé Angular2, c’est le sucesseur d’AngularJS. Le framework JS est toujours prin­ci­pa­le­ment destiné au dé­ve­lop­pe­ment d’ap­pli­ca­tions Web d’une seule page. Toutefois, Google a apporté des chan­ge­ments très im­por­tants dans la seconde version. La plus grande dif­fé­rence est pro­ba­ble­ment l’uti­li­sa­tion de TypeScript au lieu de Ja­vaS­cript pour la pro­gram­ma­tion. Mais, puisque le langage de pro­gram­ma­tion de Microsoft est basé sur Ja­vaS­cript et qu’il le contient, cela n’entraine aucune res­tric­tion dans le dé­ve­lop­pe­ment de JS. De plus, Angular a été adapté pour le dé­ve­lop­pe­ment d’ap­pli­ca­tions sur des pla­te­formes multiples (bureau, mobile, tablette).

Avantages In­con­vé­nients
Plus de pos­si­bi­li­tés grâce à Ty­peS­cript Pas de migration facile de AngularJS vers Angular
Dé­ve­lop­pe­ment multi-pla­te­forme Des barrières à l‘entrée encore plus élevées que pour le pré­dé­ces­seur.

Ember.js

Ember.js est un framework orienté client, utilisé pour les ap­pli­ca­tions Web monopages, mais peut aussi être utilisé pour créer des ap­pli­ca­tions bu­reau­tiques. Une ca­rac­té­ris­tique qui le distingue d’AngularJS est qu’il repose sur un dialogue actif, installé entre la com­mu­nauté d’uti­li­sa­teurs et les dé­ve­lop­peurs, qui n’hésitent pas à partager leurs idées et à prendre en con­si­dé­ra­tion les retours des in­ter­nautes pour la pro­gram­ma­tion du framework. Ember.js est com­mer­cia­lisé comme étant un framework per­met­tant la pro­gram­ma­tion de projets ambitieux et de grande ampleur, il est destiné en première ligne aux dé­ve­lop­peurs qui ont de l’ex­pé­rience dans la con­cep­tion d’ap­pli­ca­tions Web.

Avantages In­con­vé­nients
Développé par la com­mu­nauté open-source Assez exigeants pour les débutants
Peut aussi être utilisé pour des ap­pli­ca­tions bu­reau­tiques

Vue.js

Vue.js est aussi un framework Ja­vaS­cript pour le dé­ve­lop­pe­ment d’ap­pli­ca­tions Web d’une page res­sem­blant ainsi à Angular et React. Les dé­ve­lop­peurs de ce projet re­la­ti­ve­ment jeune et ambitieux ont dé­li­bé­ré­ment conçu ce framework de manière à ce que les débutants puissent fa­ci­le­ment démarrer. Il est par exemple possible d’intégrer des templates en HTML. De plus, Vue.js est beaucoup plus flexible que de nombreux autres fra­me­works.

Avantages In­con­vé­nients
Ap­pren­tis­sage rapide et facilité Peu complexe
Prend en charge HTML et CSS Com­mu­nauté assez petite
Pos­si­bi­li­tés de dé­ve­lop­pe­ment flexibles

Meteor

Meteor nommé aussi MeteorJS est un framework JS adapté au dé­ve­lop­pe­ment mul­ti­pla­te­forme. Il permet aux dé­ve­lop­peurs de créer des ap­pli­ca­tions Web et des ap­pli­ca­tions mobiles avec le même code. De plus, les mo­di­fi­ca­tions de code peuvent être trans­mises di­rec­te­ment aux clients grâce au protocole DDP (Dis­tri­bu­ted Data Protocol) spé­cia­le­ment développé. En plus du framework gratuit, les fa­bri­cants de Meteor proposent aussi Galaxy qui est une pla­te­forme payante. Les dé­ve­lop­peurs peuvent utiliser le service Cloud pour publier et héberger leurs projets. Le framework Ja­vaS­cript fonc­tionne sur une base Node.js, il est donc logique d’avoir des con­nais­sances de l’en­vi­ron­ne­ment de dé­ve­lop­pe­ment pour l’uti­li­sa­tion de Meteor. Enfin, avec ce framework, il est possible de créer à la fois le backend et le frontend et cela sans changer de langage, ce qui est une belle avancée.

Avantages In­con­vé­nients
Dé­ve­lop­pe­ment multi-pla­te­formes Fonc­tionne uni­que­ment avec MongoDB et pas avec d’autres types de bases de données.
Pla­te­forme d’hé­ber­ge­ment Galaxy La con­ver­sion du backend est né­ces­saire
Peut être combiné avec Angular, React et d’autres fra­me­wroks et bi­blio­thèques Problèmes avec les moteurs de recherche et la per­for­mance.

Aperçu des Ja­vaS­cript fra­me­works

AngularJS Angular Ember.js Vue.js Meteor
Année de pu­bli­ca­tion 2009 2016 2011 2014 2012
Main­te­neur Google Google Ember Core Team Evan You Meteor De­ve­lop­ment Group
Licence MIT MIT MIT MIT MIT
Con­tri­bu­teurs GitHub ca. 1.600 ca. 570 ca. 700 ca. 700 ca. 370
Ar­chi­tec­ture MVVM/MVW MVC MVVM MVVM MVVM
Par­ti­cu­la­ri­tés Dis­po­nible également pour les ap­pli­ca­tions mobiles et de bureau Dis­po­nible également pour les ap­pli­ca­tions mobiles et de bureau Dis­po­nible également pour les ap­pli­ca­tions de bureau Facile à prendre en main Combine backend et frontend

Des outils utiles dans de nombreux domaines

Les fra­me­works et les bi­blio­thèques peuvent être d’une grande aide pour les projets avec Ja­vaS­cript. La liste ci-dessus ne re­pré­sente qu’une infime partie des outils à votre dis­po­si­tion. Une bonne source pour découvrir d’autres fra­me­works, plugins et bi­blio­thèques Ja­vaS­cript est GitHub ainsi que ja­vas­crip­ting.com. Ces deux sites vous per­met­tront de trouver votre bonheur parmi de nom­breuses ex­ten­sions Ja­vaS­cript, qui peuvent être utilisées pour une grande variété de projets.

Aller au menu principal