mercredi 1 octobre 2014

AngularJS : pourquoi les développeurs en sont fous

1- AngularJS est devenu la référence des infrastructures JavaScript côté client 

Sur le terrain des infrastructures JavaScript, historiquement très nombreuses, plusieurs solutions commencent à s'imposer. Sur la partie serveur, Node.js a de plus en plus clairement remporté la bataille. Dernière preuve de cet engouement : Groupon et LinkedIn ont récemment annoncé la migration d'une partie de leur couche applicative serveur, initialement sous Ruby on Rail, vers Node.js. 




angularjs
Site du projet AngularJS de Google © Capture JDN

Mais qu'en est-il des infrastructuresJavaScript côté client ? Sur ce terrain, quatre solutions s'affrontent : AngularJS, Knockout.js, Ember.js, ainsi que BackBone. Sachant que ce dernier affiche une position à part, puisqu'il est conçu pour fournir une ossature objets à un code. Il peut donc être utilisé avec les trois autres. Alors qu'AngularJS est porté par Google, Knockout.js et Ember.js (de son côté basé sur un assemblage d'autres projets) sont tous deux issus d'initiatives open source plus communautaires.
D'après les premiers indicateurs dont nous disposons autour de la valorisation de l'expertise Angular en termes de salaire, il semble qu'elle commence à être assez élevée en France. Selon une étude d'Urban Linker parue en 2014, les profils de développeur affichant une expérience Angular font partie de ceux qui peuvent prétendre aux niveaux de salaire les plus élevés sur le terrain du développement Web.

2- Une infrastructure Modèle-Vue-VueModèle pour gagner en productivité
Depuis environ un an, AngularJS ne cesse de monter en popularité (cf. le graphique Google Trend ci-dessous). Mais qu'apporte AngularJS ? "C'est une infrastructure MVVM ou Modèle-Vue-VueModèle conçue pour construire des Web Apps, et moins des sites web", explique Damien Benoit, lead développeur chez CCM Benchmark (éditeur du JDN). Google parle même d'infrastructure MVW (pour Model-View-Whatever). Le principe du MVVM est simple : les données que le client saisit engendrent une mise à jour du contrôleur qui met à jour par ricochet la vue. Et pas besoin de template temporaire de pré génération. AngularJS utilise directement la vue HTML d'origine pour répercuter ces mises à jour. r

AngularJS pose des problèmes pour le référencement Google

Avec ce dispositif, "l'objectif est d'offrir une solution pour développer plus vite", résume Damien Benoit. "Malgré tout, AngularJS pose des problèmes pour le référencement Google. Avec lui, l'optimisation SEO est loin d'être évidente. Il est nécessaire de faire des efforts de développement pour prendre en compte cette dimension." Mais, sur ce terrain, Google commence à faire des efforts pour mieux prendre en compte les contenus issus d'applications mobiles. Ce qui, dans le futur, devrait faciliter la tâche des développeurs AngularJS (lire l'article : SEO, Google va indexer le contenu des applications Android).




angular
Courbe d'AngularJS dans Google Tendance. © Capture



3- Ce qui fait sa force : un projet porté par Google
Reste que Knockout.js et Ember.js reposent sur le même principe qu'AngularJS. Alors qu'est-ce qui fait qu'Angular recueille autant d'engouement ? "Le fait que Google porte ce projet explique cette popularité. De fait, AngularJS bénéficie de la force marketing de Google, et de ses compétences", analyse Damien Benoit. Un investissement qui permettrait au framework JavaScript de faire la différence sur plusieurs points. 

Un data-binding bidirectionnel mieux optimisé

D'abord, selon Jean Guillaume Dujardin et Pierre Vaidie de The Coding Machine, AngularJS offrirait un approche MVVM mieux optimisée. "Ce dispositif de data-binding bidirectionnel permet à un input de la page de s'afficher dans un autre endroit de la page, et donc facilite la vie des développeurs. En simplifiant le codage, il réduit aussi le risque de bugs", rappellent les deux experts (lire leur document de synthèse sur le sujet). 
"Mais cette manipulation du DOM est aussi proposée par les autres frameworks JavaScript", pondère Damien Benoit.

4- Autre point fort : les directives
Autre point fort, souvent évoqué, et rappelé par Jean Guillaume Dujardin et Pierre Vaidie : le Declarative binding. "Les directives permettent de développer des attributs et des éléments HTML spécifiques de manière à manipuler proprement le DOM", constate-t-on chez The Coding Machine. Facilitant l'ajout ou la modification de composants, ces directives permettent de définir des attributs, une liste particulière avec une image par exemple, ou de piloter des comportements, un événement par exemple. A la différence de l'approche composant d'Angular, "d'autres frameworks, comme Knockout.js, passent par un attribut de node, ce qui peut être un peu plus verbeux. Quant à Ember.js, il est orienté templating, ce qui peut être encore un peu plus complexe", reconnait Damien Benoit.
"Ce qui nous permet de dire qu'Angular va exploser : les directives peuvent se partager", résume-t-on chez The Coding Machine. Et Damien Benoit d'ajouter : "AngularJS s'intègre aussi mieux avec Polymer, en reprenant son approche orientée composants."

5- Une feuille de route riche
En attendant, Google déroule sa feuille de route. En novembre dernier, le groupe a dévoilé AngularJS 1.2. Une nouvelle mouture qui introduit notamment la gestion des animations (via ngAnimate). AngularJS 1.3 vient aussi tout juste de sortir de ses laboratoires, avec des performances accrues et l'arrêt du support d'Internet Explorer 8. Mais déjà, AngularJS 2.0 est en ligne de mire, avec notamment la volonté de rendre compatible le framework JavaScript avec les Web Components. Il est notamment envisagé que la future version d'AngularJS s'appuie sur le polyfill (la couche d'abstraction du navigateur) de Polymer pour utiliser les Web Components (dixit InfoQ). Mais aussi qu'il prenne en charge ECMAScript 6 (EC6). Un gros travail devrait aussi être réalisé pour améliorer les performances (voir le post sur le blog du projet). Il est aussi prévu de rendre l'infrastructure plus modulaire. A suivre...

1 commentaire:

  1. Simple et clair, Benjamin Lee est la personne la plus gentille et le meilleur agent de crédit à son service. Nous avons eu une route très cahoteuse pendant tout le processus de rénovation de notre entreprise, en raison de circonstances de manque de fonds. M. Ben est resté au top de toutes les parties pour s'assurer que tout restait sur la bonne voie afin de respecter notre délai serré pour clôturer notre prêt. Nous apprécions tout ce qu'il a fait pour nous et nous le recommandons vivement, lui et sa société de prêt, à quiconque cherche à obtenir un financement. Merci encore M. Ben.
    Contactez M. BEN au: 247officedept@gmail.com Également sur Whatsapp: + 1-989-394-3740.

    RépondreSupprimer