La bataille de “middangeard” ou la guerre des Frameworks Web

Depuis les temps anciens de l’apparition du développement web, une véritable bataille fait rage opposant des Frameworks JS toujours plus nombreux pour obtenir le titre tant convoité du meilleur Framework de développement web.

Cette bataille étant loin d’être terminée (si toutefois elle peut un jour voir un vainqueur émerger), je ne vais pas chercher à spéculer sur son issue, mais plutôt vous présenter quelque-uns de ses participants.

TL;DR;

Même si tous les jours on voit apparaître de nouveaux Frameworks web, les anciens, en se renouvelant sans cesse, sont toujours présents et utilisés massivement. Tous visent un même objectif : rendre le développement Web plus simple, plus rapide et plus efficace.

femme assise avec son ordinateur portable sur les genous

AngularJS

AngularJS est un Framework JS développé par Google qui a vu sa première version sortie en 2009. Actuellement, la version en cours est la 1.7.2 qui dispose du LTS.

AngularJS propose un modèle MVC destiné à découpler la logique métier du rendu des pages.

Bien que relativement passé de mode et remplacé par Angular depuis plusieurs années, ce Framework est encore largement utilisé sur beaucoup de sites Web.

Angular

Angular est un Framework développé par Google désigné comme le successeur d’AngularJS et sorti en 2016. Actuellement en version 8.2 ce Framework évolue très rapidement avec des sorties régulières de nouvelles versions, maintenant toutes les versions majeures sont en LTS.

Le développement en Angular se fait généralement en TypeScript (transpilateur fourni par Microsoft) et repose sur une modularisation de l’application Web et une hiérarchisation des composants.

Le CLI proposé par Angular permet de démarrer simplement et rapidement un projet, il permet aussi d’ajouter des éléments rapidement et propose grâce à des “schematics” d’ajouter des fonctionnalités complètes en une seule ligne de commande.

livre angular

React

Bien que React ne soit pas, à proprement parler un Framework, il est impossible de ne pas le citer.

React est un SDK (une bibliothèque) développé par Facebook depuis 2013, actuellement en version 16.9 et ses évolutions se font à un rythme soutenu.

React permet la création de composants dépendant d’un état qui vont réagir à chaque changement de cet état pour mettre à jour un DOM virtuel et n’appliquer les modifications dans le navigateur qu’en cas de nécessité.

Ce mode de fonctionnement permet à React d’être performant et flexible dans son usage.

Next.js

Next.js se positionne clairement comme le Framework pour React. Depuis 2016 il propose des solutions permettant de créer simplement des applications Web complètes en utilisant React.

Bien souvent les développeurs vont utiliser Next.js dans un premier temps pour apporter à React le SSR (Server Side Rendering) avant de découvrir l’ensemble des autres possibilités du Framework pour l’utiliser enfin pleinement.

GatsbyJS

Gatsby est également un Framework basé sur React qui permet de créer simplement et rapidement des sites Web. Créé en 2015, Gatsby permet de combiner des données issues de plusieurs sources d’informations afin de les utiliser dans une application React, puis de déployer simplement cette application.

Assez confidentiel en France, ce Framework se présente comme une alternative sérieuse aux traditionnels CMS du marché.

Vue.js

Vue.js est un Framework javascript “progressif” créé en 2014, actuellement en version 2.6.10.

Ce Framework se distingue des autres par sa philosophie axée sur la couche “vue” et sur son adaptabilité aux différents écosystèmes. Ainsi, il est facile avec Vue.js de créer des composants graphiques qui seront intégrables dans d’autres applications ou pages (y compris les pages des CMS classiques). Bien entendu il est aussi possible de faire en Vue.js des applications complètes.

Nuxt.js

Dans la continuité de Next.js, Nuxt.js se positionne comme le Framework de Vue.js apportant le SSR.

Nuxt.js apporte l’ensemble de l’écosystème nécessaire a la réalisation simple et rapide d’applications complètes en Vue.js y compris le rendu serveur pour de meilleures performances et un référencement optimisé.

Meteor

Depuis 2013, Meteor met à disposition un Framework javascript basé sur Node. Ce Framework part du principe que, grâce à Javascript, le Front et le Back peuvent partager une grande partie de la logique et du code.

Ce principe permet à Meteor de proposer des systèmes innovants de recherche sans connexion, ou de push en différé tout ceci grâce à la programmation réactive sur le Front et le Back.

Ember.js

En 2011 SproutCore devient Ember.js, un Framework Javascript dédié à la création d’applications Web. Initialement sur un modèle de MVC, Ember.js a glissé vers un modèle plus orienté composant tout en conservant son propre système de “template”.

Pour la mise à jour des données vers le composant Ember utilise la technique du DDAU (Data Down Action Up) largement inspiré de React.

Polymer

Polymer n’est pas un Framework mais une librairie développée par des équipes Google pour créer des applications Web basées sur les “Web Components”.

Cette technique, bien qu’assez récente, est donc assez peu supportée par les navigateurs un peu vieux mais reste très prometteuse dans son concept.

Les premières versions de Polymer datent de 2014 et ont connu un vrai virage en 2016 avec les premiers vrais supports sur les navigateurs. Depuis, la philosophie reste de mettre à disposition une librairie permettant de créer des briques qui pourront être assemblées afin de constituer une application.

JQuery

JQuery est sans aucun doute la bibliothèque Javascript la plus ancienne, la plus connue et sûrement encore la plus utilisée sur les sites web en ligne.

Depuis 2006, JQuery met à disposition des fonctions permettant de manipuler facilement le contenu et le rendu de la page. Largement utilisé sur l’ensemble des CMS, JQuery a permis aux développeurs Web de créer une expérience utilisateur toujours plus agréable.

Bien qu’actuellement supplanté par les nouveaux Frameworks, JQuery reste une première étape incontournable pour tout développeur Web qui commence l’apprentissage du développement d’applications Web.

Bootstrap

Inséparable de JQuery, Bootstrap propose depuis 2011 un ensemble d’éléments (CSS et JS) permettant de faciliter et de normaliser l’intégration graphique des applications Web.

Principalement connu pour son système de grille d’affichage qui s’adapte en fonction du support utilisé (PC, Tablette, Mobile), Bootstrap propose plusieurs composants graphiques utilisant JQuery.

Massivement utilisé sur les applications Web “responsives”, son usage a tendance à s’essouffler un peu dans le cadre d’un développement “mobile first”, et depuis l’apparition du web flexible “flex layout” la notion de grille tend à disparaître.

Mithril

Arrivé assez récemment sur le champ de bataille, Mithril est un petit nouveau Framework Javascript qui se bat sur le terrain de la vitesse et de la taille.

Mithril se positionne comme l’un des Framework les plus petits (en poids) et les plus rapides (en exécution)

Ce Framework utilise un modèle classique MVC pour l’architecture du code, tout en s’appuyant un maximum sur les fonctions JS natives pour la manipulation du DOM et des éléments.

Il permet de créer rapidement et assez simplement des applications Web SPA rapides composées de composants réactifs.

Backbone, Pug, Aurelia,…

Et sûrement encore plein d’autres qui gravitent au gré des développements. Le monde des Frameworks continue de grandir, de voir arriver de nouveaux Frameworks ou de nouvelles bibliothèques…

 

Si vous avez réussi à lire jusqu’ici et que vous n’avez pas trouvé votre Framework Web favori, n’hésitez pas à nous en faire part 🙂