Le journal du développeur

Que choisir entre React ou Angular ?

17 octobre 2018

Le choix entre React ou Angular anime de nombreux débats sur les forums de développeurs. Perdus la masse d’informations, il n’est pas toujours évident de s’y repérer très clairement lorsque l’on est junior en développement JavaScript et que l’on cherche la meilleure architecture ou le meilleur framework pour se lancer. Le but ici n’est pas de désigner un gagnant ou un perdant, mais de présenter les avantages et inconvénients de chacun afin de vous permettre d’orienter votre choix en connaissance de cause.

Note : Nous ne présenterons pas ici les avantages et inconvénients de Vue.js, encore trop peu populaire sur le marché.

 

ANGULAR, le framework Google

Il faut différencier Angular de React par leur logique radicalement différente : alors qu’Angular offre un framework officiel de JavaScript, React est une bibliothèque qui traite des vues.

Angular offre de nombreuses solutions et conceptions prêtes à l’emploi. Le framework a connu de multiples transformations au cours de ses différentes versions. A l’heure actuelle, nous en sommes déjà à sa 6e version (sortie le 3 mai 2018), et la beta de la version 7 se prépare à sortir très bientôt. Angular 6 reste une continuité des versions 2 à 5, et se distingue de la toute première version d’Angular, que l’on appelle AngularJS. En effet, dès Angular2, l’équipe de développement a entièrement réécrit le framework pour adopter une approche orientée composants et utiliser du Typescript.

Angular donne la possibilité de faire des composants en JavaScript. Son approche est plutôt modulaire et permet donc « bootstrapper » des modules dans une application, en se basant sur du Webpack et surtout sur l’usage d’observables. La familiarisation avec les observables est donc assez importante pour quiconque souhaite se spécialiser dans le développement Angular.

Pour aider à développer un projet plus rapidement, Angular est particulièrement apprécié pour son outil CLI très puissant, qui le rend scalable et permet de générer des skeletons d’applications, des classes, services et composants depuis son propre terminal. Angular reste une excellente solution pour programmer des applications web hautement interactives.

 

 

Avantages et inconvénients d’Angular

 

Avantages de Angular

  • Un framework complet avec une architecture élégante
  • Une documentation très étoffée qui permet aux développeurs de trouver toutes les informations nécessaires rapidement
  • Une grande communauté, qui permet toujours de pouvoir poser des questions en cas de blocage
  • Des améliorations constantes et régulières (compilation inférieure à 3 secondes pour Angular 5)
  • L’association bidirectionnelle de données, qui répercute les effets de chaque modification mineure des données, supprime le besoin de synchronisation supplémentaire des données de la vue et du modèle, et minimise les risques d’erreurs
  • Modèle MVVM (Model – View- View Model), qui permet aux développeurs de travailler séparément sur la même section d’application en utilisant le même ensemble de données
  • Un moteur de DI (injection de dépendances)
  • Les avantages du TypeScript : vérification statique et opérationnelle de la saisie, fonctions de saisie très performantes

 

Inconvénients de Angular

  • Lourdeur du langage, complexité de la syntaxe
  • Spécificités du TypeScript, qui a une courbe d’apprentissage difficile
  • L’impossibilité de changer de framework en cours de route : une application doit être développée en Angular du début à la fin
  • Problèmes de migration d’une version à une autre. Les montées en version sont particulièrement difficiles (bien que Angular 4, 5 et 6 soient désormais rétro-compatibles)

 

 

REACT, une librairie développée par Facebook

 

React est différent d’Angular, car celui-ci n’est pas un framework à proprement parler. Il s’agit d’une bibliothèque développée par Facebook et s’appuyant sur une très importante communauté Open Source.

React est également orienté composants, mais beaucoup moins packagé qu’Angular. Il laisse ainsi plus de liberté et il est possible de développer en JavaScript classique (classique ou ES6 avec support babel) ou bien ou TypeScript. Les développeurs peuvent utiliser le module leader de leur choix et le fonctionnement de React est donc beaucoup plus flexible.

Pour bénéficier de solutions prêtes à l’emploi, les développeurs pourront ajouter quelques modules à React afin que celui-ci fonctionne comme un framework standard. Redux et Flux sont les plus courants et s’imposent comme des indispensables de la stack technique ReactJS.

La principale différence entre Angular et React concerne la gestion d’état. Angular a en effet une liaison de données bidirectionnelle intégrée par défaut, tandis que React est souvent augmenté par Redux pour permettre un flux de données unidirectionnel et travailler avec des données immuables. Les deux approches sont radicalement opposées, sans que l’on puisse vraiment déterminer de consensus sur ce qui est préférable entre mutable/liaison de données ou immuable/unidirectionnel.

 

Avantages et inconvénients de ReactJS

 

Avantages de React

  • Beaucoup plus facile à apprendre qu’Angular. React exige de bien revoir ses bases en HTML et ne réclame pas de syntaxe complexe comme l’apprentissage du TypeScript
  • Malgré cela, React est centré sur JavaScript en encapsulant le HTML dans JS. Angular est plus centré sur HTML, qui est moins robuste
  • Flexibilité et responsiveness (intégration très rapide pour mobile via React Native)
  • Une véritable boîte à outils offrant un très large choix aux développeurs
  • 100% Open Source, beaucoup d’améliorations et de contributions régulières de la communauté des développeurs
  • Réduction du nombre d’opérations sur le DOM (Document Object Model), optimisation et accélération du processus de mises à jour (très utile pour les grosses bases de données)

 

Inconvénients de React

  • Très peu de documentation officielle
  • Pas de moteur pour injection de dépendances
  • Malgré la légèreté de la syntaxe, React requiert une connaissance approfondie pour intégrer l’interface utilisateur au framework MVC.

 

Angular et React possèdent donc chacun leurs avantages et inconvénients et sont tous deux très réclamés par les employeurs.

Si l’on doit comparer leur évolution sur le marché de l’emploi, Angular a connu une très forte croissance entre 2014 et 2016. Ces deux dernières années, il semblerait cependant que React reprenne le dessus et soit de plus en plus recherché par les employeurs.

 

Vous avez déjà développé en Angular ET en React ? Votre avis nous intéresse ! N’hésitez pas à compléter cet article en partageant votre expérience en commentaires.

L'auteur Julien Broue

Co-Founder

Julien Broue
Postuler à l'annonce Postuler à toutes les annonces Ingénieur système linux orienté web
ou
Remplissez le formulaire
C'est tout bon

On vous recontact au plus vite !
En attendant, vous pouvez toujours consulter nos autres jobs !

rotate screen

Retourner votre tablette pour une meilleure navigation