David Hockley

Angular vs React : lequel choisir ?

Angular vs 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 frameworks front-end 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 Angular et React.   Toutefois, avant d'explorer leurs différences, parlons de leur points communs.

Les points communs

Un rendu client et des composants

React et Angular sont tous deux des solutions qui utilisent le JS (le JavaScript) du navigateur pour effectuer le rendu de l'interface utilisateur. Pour dire les choses autrement, ils permettent aux développeurs de créer des SPA ou "Single Page Application". Ce type d'application présente plusieurs avantages. Tout d'abord, avec un rendu côté client, il permet d'élaborer une ergonomie plus évoluée. Contrairement à un développement en HTML,  l'utilisation de React ou d'Angular permet de développer des application web à à partir de composants réutilisables.

Quel langage de programmation ?

Même si Angular est un framework JavaScript, le language de programmation recommandé pour Angular, c'est plutôt TypeScript. React, qui a les idées moins arrêtées, permet facilement de programmer en JavaScript. Toutefois dans la littérature et dans mon expérience personnelle, TypeScript est très largement préféré au JavaScript dans l'écosystème React.

Angular ou React : Une différence de philosophie incarnée visuellement

Les différences entre React vs Angular s'expriment de manière visuelle: les logos racontent une histoire. 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 faire aucun mal" (Do No Evil). Facebook, berceau de React, veut "Bouger vite et tout casser" (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 "badboy". 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 Chaotique Neutre.

Quelle structure ?

En termes de structure interne, la même opposition s'applique : il n'y a pas de structure imposée du côté de React. Dans Angular, il existe une convention de codage et de nomenclature 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 de type 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. Les développeurs peuvent créer des composants comme bon leur semble, sans suivre de structure. Ainsi React est largement utilisé dans les petites équipes. Mais pas seulement. Après tout, Facebook utilise React pour ses applications web et mobile, avec React Native.

L'impact pratique: Des avantages et inconvénients réciproques

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 toutes les 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 le rend facile à apprendre car il y a moins de choses à apprendre. (Au 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é. React peut être utilisé un peu partout, même au sein d'une application Angular ! (Même si en pratique il n'y aurait pas d'intérêt, si ce n'est de transitionner progressivement une application d'un framework à un autre). Avec React vous pouvez créer des applications simples à toute vitesse.    Angular offre sécurité et structure, alors que React offre agilité et rapidité.

Un dernier point à soulever ici: On constate que React possède une popularité plus grande. Dans les différents sondages StackOverflow, le taux d'utilisation de React est sensiblement plus grand que celui des autres frameworks web. Par rapport à Angular, React possède un taux d'utilisation presque deux fois supérieur. Cet utilisation plus répandue se traduit dans l'écosystème, qui est plus riche.

Des différences

C'est, si on veut être tatillon, un abus de language de parler de framework dans le cas de React. ReactJS est une bibliothèque javascript, et ne prétend pas être un framework complet. De ce fait, on peut utiliser React un peu partout : même à l'intérieur d'Angular. Mais si on considère l'écosystème dans son ensemble, on a bien une solution qui se place dans la catégorie des frameworks JavaScript frontend. Et dans le sondage StackOverflow, React est le framework le plus populaire.  Notons aussi que React utilise un DOM virtuel, pour faire le suivi des modifications, là où Angular utilise une librairie du nom de Zone.js. Toutefois Angular semble vouloir s'engager vers un modèle plus directement réactif avec une nouvelle fonctionalité, les Signaux, qui ressemble à ce que fait Solid.js.

Angular vs React : quel framework choisir ?

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. Chaque framework front-end propose une façon de faire spécifique qui va vous correspondre plus ou moins bien en fonction de qui vous êtes et de ce que vous cherchez.    Pourquoi Angular ? Si vous avez besoin que les choses soient standardisées et sécurisées, je conseillerais Angular. Angular est plus sécurisant, plus cadré. Il est plus usité dans des secteurs traditionnels comme la banque. Donc si vous souhaitez une carrière de développeur dans le secteur bancaire ou un environnement de travail stable, privilégiez Angular.

Pourquoi React ? Si vous avez besoin d'action et de flexibilité, je recommanderais React. React a une approche moins cadrée, plus libre. Les applications construites avec React sont généralement plus légères en code. React permet une prise en main plus rapide. Si vous cherchez l'agilité, 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 à où vous souhaitez aller.

Social
Made by kodaps · All rights reserved.
© 2023