Frameworks JavaScript : les clés pour traverser la jungle !

La toile foisonne de frameworks JavaScript avec des promesses plus belles les unes que les autres. Ils permettent de développer un site web ou une application mobile et de proposer une expérience utilisateur très aboutie.

Cadrons la problématique : qu’est-ce qu’un framework ?

Un framework est une boite à outil doublée d’une philosophie de développement et d’architecture. Il permet de répondre à des besoins fonctionnels et de faciliter le travail des développeurs. Le framework JavaScript (ou JS) se base quant à lui sur le langage de programmation JavaScript. Il  donne un cadre de travail au développeur, lui permettant ainsi de bénéficier d’une bibliothèque de composants déjà développés et d’une architecture déjà posée. Il répond donc à un souci de sécurisation et d’optimisation du développement du dispositif web.

Qui développe ces frameworks ? Ce sont en majorité des communautés de développeurs qui travaillent bénévolement sur ces sujets (communautés open source), mais également de grandes entreprises telles que Google, Facebook ou Yahoo. Le code des frameworks est ouvert et disponible pour les utilisateurs qui souhaitent le modifier. En contrepartie, leur utilisation est soumise au respect des conditions d’une licence. Il en existe différents types, plus ou moins contraignants, et ce point est essentiel dans le choix du framework.

La jungle est remplie de pièges ! … comme les éviter ?

Afin d’éviter de mettre son projet en difficulté, il est primordial d’être vigilant afin d’éviter certains écueils :

Bien choisir son Framework, tout d’abord, est un élément primordial dans la réussite ou l’échec d’un projet. Cette phase de choix doit être la plus objective et la plus exhaustive afin de ne pas partir sur de mauvaises bases. Il ne faut, par exemple, surtout pas succomber aux sirènes de la nouveauté sans y avoir réfléchi à deux fois.

Ensuite, le paramètre de la courbe d’apprentissage est structurant : selon l’expérience et la maturité technique de l’équipe de développement, l’impact sur la productivité peut être plus ou moins important. Certains frameworks, par exemple, nécessitent une expertise assez pointue en JS et en architecture ; ils ne sont ainsi pas à privilégier si l’équipe est peu expérimentée.

Il  faut par ailleurs faire attention à la qualité des frameworks : ils sont écrits par des développeurs, comme n’importe quel site web ou application mobile. Ils peuvent donc comporter des erreurs de codage… avant de choisir un Framework, renseignez-vous sur sa qualitativité !

Il est également important de se renseigner sur la vivacité de la communauté du framework : la fréquence de mise à jour, les dates des dernières versions publiées, la taille de la communauté, les possibilités d’avoir du support… tous ces points permettent de sécuriser la phase de développement du projet.

Le choix de la licence doit être éclairé : une licence contraignante peut aller jusqu’à l’obligation de rendre public le code développé sur la base du framework. Cela n’est pas forcément acceptable dans tous les cas ! Ainsi, la lecture des conditions de la licence est nécessaire afin de ne pas avoir de mauvaises surprises.

Enfin, les retours d’expérience sont fondamentaux : avant de choisir un framework et de lancer les fondations du projet, il faut se renseigner sur les références de ce framework et se poser les questions suivantes : des projets similaires l’ont-ils utilisé ? Pour quel résultat et quelles performances ?

Quelques frameworks tirent « leurs lances » du jeu

Il existe aujourd’hui une myriade de frameworks JavaScript, il est donc impossible d’être exhaustif en évoquant ce sujet, cependant quelques-uns arrivent à tirer leur épingle du jeu:

-    Angular JS : créée en 2009 et maintenu actuellement par Google ainsi que par une communauté de contributeurs open-source, il est destiné aux développements d’interfaces utilisateurs dynamiques et évoluées, très utilisé dans le développement de frontaux web au design poussé.

La version 2.0 d’Angular est en cours de développement avec son lot de nouveautés très attendues par la communauté des développeurs. L’ambition de cette nouvelle version clairement affichée par ses concepteurs est la facilitation de la vie des développeurs, en leur permettant de manipuler des concepts simplifiés par rapport à la version précédente, l’autre ambition est de corriger les faiblisse de la version précédente (suppression des contrôleurs et des objets de définition de directives…)

-    Node JS/Express JS : Un environnement (et pas un Framework) original par son positionnement, du JavaScript coté serveur, même si ce concept n’est pas nouveau, NodeJS a réussi à rendre les choses naturelles.  A l’inverse de la majorité des Framework JS qui sont destinés au développement d’interfaces utilisateurs, cet environnement propose que ce langage soit utilisé pour développer la logique métier qui génère les frontaux web avec la promesse de la rapidité d’exécution, il a donc pour but de venir perturber sur leur terrain des langages bien établis tel que PHP et Java qui sont spécialisés dans ce domaine.

-    BackBone JS : un framework JavaScript léger et simple à prendre en main, destiné au développement de pages web, basé sur une architecture MVC (séparation des couches métier, données et présentation), utilisé par des sites comme LinkedIn, Tumblr, Pinterest ou Reddit.

-  JQuery : le framework JS le plus populaire dans le monde du web d’après libscore.com, son positionnement : simplicité, rapidité et richesse fonctionnelle, spécialisé dans le développement d’interfaces utilisateurs. Il existe aussi en version adaptée aux développements pour le mobile.


Et les applications mobiles dans tout ça ?

Les frameworks JS jouent un rôle important dans la montée en puissance des applications hybrides qui concurrencent aujourd’hui les applications natives iOS et Android dans certains cas. Une architecture semble se détacher dans ce domaine : l’utilisation du Framework ionic permet de faire un pont entre AngularJS, HTML, CSS d’un côté, et Cordova (qui permet notamment d’encapsuler les applications afin de  permettre de les déployer sur les stores) de l’autre. Cette architecture, de plus en plus utilisée en France et dans le monde, permet d’augmenter considérablement le nombre d’applications hybrides sur les Stores.

Au final, performance rime avec expérience

Dans la jungle technologique des Frameworks, il existe de nombreuses mises en œuvre permettant d’avoir un retour d’expérience. Selon les contextes fonctionnels, ce retour permet d’entrevoir une certaine clarté dans les architectures et leur adaptation. On peut aujourd’hui, grâce à une architecture complète JavaScript, construire un site web performant en termes d’expérience utilisateur. On peut également développer une application mobile et la publier sur l’AppS tore ou le Google Play en se basant uniquement sur des technologies web. Tant d’exemples qui semblent bien prouver que l’investissement dans l’expertise JavaScript est un pari gagnant !