L'évolution majeure pour ne pas dire colossale d'Angular 9, c'est Ivy : le nouveau compilateur et runtime.
Ainsi, grâce à Ivy, la v9 d'Angular permet de :
générer des bundles plus petits
rendre Angular plus rapide
Ivy en deux mots
- le développement d'Ivy a débuté à l'automne 2017
- il y a eu plus de 250 committers, c'est dire l'importance de la tâche
- il y a eu beaucoup plus de RC que sur les versions précédentes car l'enjeu était important
- l'année 2019 a été consacrée à tester intensivement Ivy
- sa livraison a été repoussée à plusieurs reprises car l'équipe d'Angular ne voulait pas nous faire revivre un traumatisme équivalent au passage d'AngularJS à Angular "tout court"
Nota : malgré cela, il y a probablement des bugs dans des cas très spécifiques que l'équipe d'Angular demande de faire remonter (mais de nouveau, très peu de développeurs seront concernés car ce sera sur des cas très spécifiques).
En quoi Ivy vous concerne ?
Grâce à Ivy :
- le même compilateur est utilisé en développement et en production du fait qu'Ivy est suffisamment performant pour être utilisé pendant le développement, avec comme bénéfice la disparition des mauvaises surprises que constituaient les bugs inopinés qui se produisaient uniquement sur les versions de production de vos applications
- comme dit précédemment, vos bundles seront plus petits et vos applications plus rapides
- tous ces avantages sans que vous ayez à monter en compétence sur les nouveautés d'Angular 9 car tout a été fait pour que les APIs auxquelles vous êtes habitué restent inchangées
En résumé
Même si Angular 9 est une version majeure, les changements massifs sont internes et ne nécessitent pas de modifier votre code. L'amélioration des performances dont vont bénéficer vos applications Angular grâce à Ivy sont sans contrepartie.
Une nouvelle version d'Angular continuera à sortir tous les 6 mois, sans que cela ne provoque le choc que vous avez peut-être connu il y a quelques années lors du passage d'AngularJS à Angular "tout court". Angular aurait probablement dû être nommé différemment car c'était un nouveau framework, là où depuis quelques années, la succession des versions majeures est conforme à ce qui se fait sur de nombreux autres frameworks (ou librairies) Front ou Back, c'est-à-dire sans que cela ne nécessite de changer radicalement votre code passé ni ne requiert une longue montée en compétence.