Precisa escolher entre Angular 2+ ou React? Talvez isto possa te ajudar 👇
É frequente a dúvida: usar o já provado e veterano Angular, ou o “recente” e “exótico” React? Ambos têm suas vantagens e desvantagens superficiais, e ambos possuem grandes empresas usando e suportando a comunidade.
Então como decidir o maldito framework certo para você?
Só existe uma maneira de ter certeza de saber qual o melhor para você: programando em ambos
Sim, esta é ou seria a melhor maneira. De maneira geral podemos comparar perfomance, comunidade, popularidade no Github, etc, mas existem diferenças ideológicas profundas entre o React e o Angular. Diferenças que influenciam e impactam em praticamente todos os aspectos da arquitetura do seu código — e você só entende isso se mergulhar a fundo em ambas tecnologias.
Minhas experiências e considerações (IMHO)
React — 👍
A performance de ambos é inquestionável, ainda que o React seja um pouco mais rápido nos testes de benchmarking. Nitidamente a comunidade é mais engajada, para o lado do React, possuindo muitos componentes prontos para serem utilizados, coisa que senti mais dificuldade com o Angular.
Por ser menos engessado, o React também é mais agradável de aprender e desenvolver, além de ser é mais fácil de ensinar e manter, já que o código, no geral, é mais compacto e “componentizado”, sendo mais compreensivo para quem está colocando as mãos no código pela primeira vez.
Não bastando ser mais rápido e mais simples que o Angular, o React possui uma vantagem especial
React — 👎
Por dar extrema liberdade, fica fácil cometer erros que levam a problemas de arquitetura e comprometam a complexidade da aplicação. A solução para isso é pesquisa, estudo e experiência. Lado bom: existe muita documentação na internet, e, no geral, erros que são fáceis de cometer, também são fáceis de reverter.
Angular — 👍
Como muitos desenvolvedores tiveram contato com AngularJS no passado, o Angular continua mantendo seus ideais de MVC (ou MVVM, MV*, etc). Por manter suas raízes, já existem muitos desenvolvedores com experiência e conhecimento no framework, facilitando a transição para a evolução do framework.
Também por ser mais rígido, mantém uma arquitetura bem similar em todos os projetos, criando um padrão fácil a ser seguido — pelo menos em teoria.
Angular — 👎
Apesar de cumprir o que promete e, de fato, as arquiteturas ficarem semelhantes entre diferentes códigos, todos os resultados práticos que já vi foram semelhantes: arquitetura complexa, imperativa, ineficiente, pouco componentizado e, portanto, de dificíl compreensão.
Sim, para quem está “vendo“ o resultado — apenas o front-end — tudo funciona bem e como deveria (ou não 🤔). O problema está no que acontece por “trás das cortinas”.
Nas minhas experiências, tanto em projetos que desenvolvi do zero, quanto nos que peguei em andamento, as coisas ficam maiores e mais complexas do que precisariam, desacelerando o ritmo e piorando a experiência do time de desenvolvimento.
No final, depende de cada projeto e de cada time.
Nunca irá existir uma solução que funcione em todos os cenários possíveis, mas estou convicto que o React é a melhor solução para a maioria dos casos.
É possível aplicá-lo desde um site simples quanto um aplicativo complexo utilizando as ferramentas certas, e é divertido para quem o faz; tornando a experiência de desenvolvimento agradável e rápida.
