React vs Angular : lequel choisir ?
Published: 2021-08-22 07:09:03


Angular ou React.js : Lequel est-il préférable d'apprendre ? Laquelle est la meilleure à utiliser pour un projet ? Et surtout, quelles sont les différences structurelles et fondamentales entre ces deux solutions ?
Je travaille avec Angular depuis 2016 et avec React depuis 2019 (et par Angular, j'entends Angular 2 et plus, pas AngularJs). Et pour moi, bien que les deux servent un objectif similaire, ils se sentent radicalement différents à coder avec.

Le premier point à souligner est qu'Angular est utilisé sur Gmail et sur les produits Google en général, sur Microsoft Office Online, sur UpWork, sur Sony et sur Forbes. Alors que React est utilisé chez Facebook, Instagram, Netflix, Dropbox et Uber. Donc Angular et React sont tous deux des solutions matures avec de solides références. Cependant, ces noms racontent l'histoire de deux mondes très différents et donnent un premier indice sur la différence sous-jacente entre les deux solutions.

{% youtube ics7WsBW-6g %}

# Une différence de philosophie incarnée visuellement

Les logos racontent une histoire similaire. Le logo d'Angular est un bouclier, symbole de solidité et de sécurité. En revanche, le logo de React est un atome. Si vous combinez la sémantique de React et un atome, vous obtenez une explosion, une réaction atomique. Le contraire de la sécurité.
Les énoncés de mission internes de ces deux entreprises montrent la même opposition. Google, où Angular a été créé, vise à "Ne pas faire de mal". Facebook, berceau de React, veut "Move fast and break things". Alors que Google semble très respectueux de la loi, la devise interne de Facebook dégage une atmosphère rebelle de mauvais garçon. Leurs deux solutions (Angular et React) incarnent ces deux mentalités. Et les entreprises qui utilisent ces deux solutions reflètent cet état d'esprit : les entreprises solides et sensées sont vantées du côté d'Angular tandis que les champions de React sont disruptifs. Si vous deviez traduire cela en termes de jeu de rôle, Angular aurait un alignement Lawful Good et React un alignement Chaotic Neutral.

# Quelle structure ?
En termes de structure interne, la même opposition s'applique : il n'y a pas de structure préimposée du côté de React. Dans Angular, il existe une convention de codage et de nommage dérivée du modèle MVC (model view controller). La structure du système de fichiers reflète cela, chaque module a un dossier, dans les dossiers des modules, on a des dossiers pour chaque composant. Et tout cela doit être respecté pour que l'application compile.
React n'a pas de structure MVC, juste des fonctions qui rendent le code directement (du moins si nous utilisons des composants fonctionnels). La manière de structurer le code et le système de fichiers est laissée fermement à la discrétion du développeur.

# L'impact pratique

En quoi Angular et React sont-ils différents en pratique ? D'après mon expérience, les différences de structure conduisent à des composants plus gros et de plus grande portée dans Angular, alors que React est propice à des composants plus ciblés. La réutilisation des composants est également plus complexe dans Angular, alors que le faire dans React demande un effort minimal.
Angular étant un framework à part entière avec un champ d'application plus large (il fournit plus de fonctionnalités d'emblée, comme le routage, l'internationalisation ou la gestion bidirectionnelle de l'état) et une structure prédéfinie, sa courbe d'apprentissage est plus raide.
React, en revanche, est une bibliothèque ciblée, avec moins de structure et moins de portée, ce qui facilite l'apprentissage car il y a moins de choses à apprendre, du moins au début. Vous pouvez couvrir les principaux concepts en un après-midi. Cette focalisation unique est également ce qui lui confère une plus grande flexibilité.
Angular offre sécurité et structure, alors que React offre agilité et rapidité.

# En conclusion : Lequel dois-je recommander ?
Pour commencer, je recommande d'apprendre JavaScript et Typescript avant d'apprendre l'un ou l'autre. Une fois que c'est fait, si vous le pouvez, apprenez les deux. Si ce n'est pas le cas, ma recommandation dépendrait de vos traits de personnalité, de votre aversion au risque et du degré de structure dont vous avez besoin. Si vous avez besoin que les choses soient standardisées et sécurisées, je conseillerais Angular. Si vous avez besoin d'action et de flexibilité, je recommanderais React. Si vous souhaitez une carrière de développeur dans le secteur bancaire ou un environnement de travail stable, privilégiez Angular. Si vous préférez travailler plutôt dans une start-up où tout bouge dans tous les sens, je recommande React. Les deux sont de bons choix, mais vous seul pouvez répondre à celui qui correspond le mieux à l'endroit où vous voulez aller.