Partie 1 : Découvrir Angular
Partie 2 : Acquérir les bases sur Angular
Partie 3 : Aller plus loin avec Angular
1 de 2

2. Différences entre Angular et AngularJS

C’était quoi, AngularJS ?

AngularJS était très populaire et a été utilisé pour développer des applications clients complexes, exactement comme son grand-frère Angular. Il permettait de réaliser de grosses applications et de les tester avec efficacité. Il a été développé dans les locaux de Google en 2009 et était utilisé pour quelques-unes de ces applications en interne (je ne pourrai pas vous dire lesquelles par contre).

Pour les développeurs d’AngularJS, je vous ai préparé une petite liste ci-dessous des changements majeurs entre la version un et la deux. Voici résumé en six points les changements qui me paraissent les plus importants :

  1. Les contrôleurs : L’architecture traditionnelle MVC est remplacée par une architecture réactive à base de composants web. L’architecture MVC est une architecture classique que l’on retrouve dans beaucoup de Framework (Symfony, Django, Spring) permettant de découper le Modèle, la Vue et le Contrôleur.
  2. Les directives : La définition existante de l’objet Directive est retirée, et remplacée par trois nouveaux types de directives à la place : les composants, les directives d’attributs et les directives structurelles.
  3. Le $scope : Les scopes et l’héritage de scope sont simplifiés et la nécessité d’injecter des $scopes est retirée.
  4. Les modules : Les modules AngularJS sont remplacés par les modules natifs d’ES6.
  5. jQLite : Cette version plus légère de jQuery était utilisée dans AngularJS. Elle est retirée dans Angular, principalement pour des raisons de performance.
  6. Le two-way data-binding : Pour les même raisons de performances, cette fonctionnalité n’est pas disponible de base. Cependant, et il est toujours possible d’implémenter ce mécanisme avec Angular.

Pourquoi Angular ?

L’équipe de Google qui travaille sur AngularJS a officiellement annoncé Angular à la conférence européenne Ng-Conf en Octobre 2014 (Une conférence consacrée spécialement à Angular). Ils ont annoncé que cette nouvelle version ne serait pas une mise à jour, mais plutôt une réécriture de l’ensemble du Framework, ce qui causera des changements de ruptures important. D’ailleurs, il a été annoncé qu’AngularJS ne serait plus maintenu à partir de 2018. On dirait qu’ils veulent faire passer un message, vous ne trouvez pas ? 😏

Les motivations pour développer un nouveau Framework, tout en sachant que cette version ne serait pas rétro-compatible, étaient les suivantes :

  1. Les standards du web ont évolué, en particulier l’apparition des Web Components (nous y reviendrons) qui ont été développés après la sortie d’AngularJS, et qui fournissent de meilleures solutions de manière native que celles qui existent actuellement dans les implémentations spécifiques d’AngularJS. Angular a été l’un des premiers Frameworks conçu pour intégrer sérieusement avec les Web Components.
  2. JavaScript ES6 – la plupart des standards d’ES6 ont été finalisés et le nouveau standard a été adopté mi-2015 (Nous y reviendrons également). ES6 fournit des fonctionnalités qui peuvent remplacer les implémentations existantes d’AngularJS et qui améliorent leurs performances. Pourquoi s’en priver ?
  3. Performance – AngularJS peut être amélioré avec de nouvelles approches et les fonctionnalités d’ES6. Différents modules du noyau d’Angular ont été également retirés, notamment jqlite (une version de JQuery allégée pour Angular) ce qui résulte en de meilleures performances. Ces nouvelles performances font d’Angular un outil parfaitement approprié pour développer des applications web mobiles.