Por que (não) escolher Angular

Hoje em dia é difícil seguir errado tanto com React, Angular ou Vue - porém tenho algumas ressalvas em relação ao Angular que vou tentar discorrer brevemente aqui.

Muita opinião

Angular tem um jeitão muito definido (ou fechado, opinativo) de como trabalhar com ele, o que acaba formando profissionais que saibam mais dele que de JavaScript em si. Eu não vejo isso como uma coisa boa, visto que frameworks de frontend nascem e morrem todos os dias. Diferente dele, React ou talvez até mesmo Vue, lidam com JavaScript (ou TypeScript) mais de perto, dando uma abertura a um desenvolvimento mais diverso. Veja, isso nada tem a ver com padrões, pois seguir ou não padões pode ser feito em qualquer um, mas sim opiniões e regras de como deve ser feito. Em Angular uma página tem que ter um controller pra regular suas variáveis e escopo, tem que ter um serviço caso precise acessar uma API, tem que ter um pipe caso precise transformar um dado, rotas caso precise delas, módulos e injeção para conectar tudo isso... e isso não é uma recomendação, é o que o Angular impõe. Em outros frameworks você tem JavaScript (ou TypeScript) pra te dizer o que você pode ou não fazer. No mesmo exemplo, se quiser fazer uma requisição à uma API você poderia criar uma linha de código ou um serviço ou como quiser lidar com Fetch. Ou ainda pegar um módulo público no GitHub como o Axios, que já foi battle tested, evitando assim reinventar a roda. O mesmo pra rotas, transformar dados, manipular estado...

Além disso tudo, em pesquisas recentes , dentre os 3, Angular é o framework menos utilizado no mundo. React lidera esse ranking e Vue tem passado todos em popularidade e satisfação. A Google, criadora do Angular, tem várias páginas criadas em React. O Facebook, criador do React, não tem páginas feitas em Angular. Não é, no mínimo, curioso? O Brasil, México e alguns países do leste europeu são os únicos com essa estranha escolha a favor de Angular (e mesmo assim, menos que React ou Vue). Nessas pesquisas , é visível que apesar do grande uso, a satisfação com o fremework é super baixa.

E tem mais?

Outro dado importante é que procurar documentação ou exemplo de código em Angular é complicado porque ele não tem nada a ver com AngularJS, não são compatíveis e mesmo assim tem o mesmo nome. Procurar por algo no Google relacionado com um deles é muito mais difícil que qualquer outro framework, tornando o aprendizado de um Junior algo frustrante. A ironia de tudo estar no Google também é grande.

Ah, mas o sistema já é feito em AngularJS, é natural migrar pra Angular

Não. Eles são completamente diferentes e não são compatíveis. Até o Google se arrepende de ter usado o mesmo nome. Essa é a hora de analisar se valeu mesmo a pena ter seguido pela linha deles.

Conclusão

Em grande resumo, eu não acredito que só exista uma maneira de desenvolver pra web (app, site ou o que for) no futuro próximo. A história e o AngularJS me convenceram que esse não é o melhor caminho.

Existe bastante material a respeito sobre esse tema, mas separei alguns que dizem bastante do que eu penso também:

Nota final

Apesar de óbvio, esse artigo expressa apenas minha opinião, não tendo pretensão alguma de ser a única fonte de verdade ou algo absurdo do gênero. No fim do dia a melhor ferramenta é aquela que você usa e/ou define como boa, ok?