Taverna /dev/All

Vue está morrendo e o caminho é React?

Olá a todos.

Atualmente estou desenvolvendo com Spring e estou gostando bastante. Para o front, escolhi Vue.JS, e hoje um colega disse que Vue mesmo estava morrendo e eu deveria estudar React.

Vue, Angular ou React? O que usam? E por que?

1 Curtida

Até este ano a esmagadora maioria do nosso desenvolvimento front-end era baseado em Vue.js, e a principal razão era a simplicidade da solução.

Aí percebemos que no quesito manutenibilidade, conforme o projeto crescia em complexidade ele não nos atendia tão bem (e olha que usamos o Vue.js tanto para Mobile quanto Web): era nítido que faltava alguma coisa.

Foi quando dentre todas as opções resolvemos buscar um framework de verdade (o Vue é uma lib, não um framework), que nos permitisse ter padrões bem definidos que pudéssemos adotar e, com isto, passar a ter uma manutenibilidade maior. De todos eles o que se mostrou melhor foi o Angular pelas seguintes razões:

  • O ferramental é excelente.
  • TypeScript - no início houve resistência da nossa parte, depois vimos como uma puta linguagem.
  • O fato de ser um framework real: ele se comporta como tal, isto é, lhe fornece os espaços que você, enquanto desenvolvedor, deve preencher.
  • A parte de injeção de dependências e inversão de controle do Angular era muito superior ao que tínhamos no Vue.

(no caso, algo que percebemos que sempre nos atrapalhava bastante era a gestão de estado com Vuex, por mais que organizássemos nossos projetos, este sempre voltava para nos atazanar).

Escrevi dois posts sobre isto:

No final usamos hoje o Vue.js apenas para formulários mais complexos em pontos específicos de projetos. Exemplo: aplicações renderizadas do lado servidor (Grails, por exemplo) que possuam estes formulários, e é aplicado apenas ali.

Para este tipo de cenário, é perfeito. Outro cenário seriam alguns relatórios também, mas tirando isto, o custo da manutenibilidade acaba pegando e uma solução como o Angular se mostrou bem mais interessante para o nosso caso.

Comecei com vue no final de 2016, conheci ele da pior forma possível. Através de um freelance frankenstein onde no front eu tinha blade(laravel), jquery, vuejs e angularJS. Mesmo pegando o vuejs em um cenário horrível, achei ele interessante e de uma forma que eu não tinha visto com jquery ou angularjs.

Dai decidi conhecer mais sobre, desenvolvemos uma aplicação na empresa que eu recém tinha começado e como tava aprendendo, fomos fazendo do jeito que a gente achava que era o correto e tal. Conforme foi passando o tempo, percebi o mesmo que o @kicolobo e que tava muito dificil manter aquilo.

Mas ao invés de abandonar fomos rafatorar a solução já existente e hoje lá na antiga empresa quem cuida do sistema consegue entender de forma clara as coisas e o fluxo de dados e criar novos módulos.

Acho fundamental conhecer os novos conceitos de frontend para web, aprender a componentizar as coisas, onde faz sentido componentizar e principalmente saber demais JS.

Hoje continuo trabalhando com vue, mas também trabalho com angular (ionic) e react (principalmente o native). Alguns conceitos são diferentes, mas os conceitos cores são os mesmo. Então você se fundamentar nos conceitos e entender o que cada FW desse faz é essencial, pois assim você fica livre basicamente dos FW e consegue pegar qualquer de forma fácil em pouco tempo.

Sempre que alguém pergunta sobre qual dos 3 usar, recomendo fazer uma prova de conceito com cada um e escolher o que mais agrada + o que tem a melhor curva de aprendizagem.

A não ser que esse seu colega tenha apresentado números que mostrem que Vue está morrendo, não use essa afirmativa como quesito para escolher a tecnologia que usará em seus projetos.

Infelizmente não lembrarei qual a fonte agora (então desconfie do que eu direi e pesquise por conta própria) mas um survey de tecnologia recente mostrou que a dominância do React não é tão grande como se imaginava. Não quer dizer necessariamente que o React perde relevância, revela mais que outras alternativas também têm visibilidade e talvez algo diferente e interessante a acrescentar.

O depoimento do @kicolobo é um bom exemplo de abordagem na avaliação de tecnologias: dado um cenário (aumento de complexidade) e alguns sintomas, você avalia opções de forma objetiva dentro do seu contexto. É quase que o método científico aplicado à programação. :slight_smile:

curiosidade: nunca vi usuário de Vue reclamar que nem os de React e Angular das ferramentas que usam, vejo mto mais paixão pelo framework nos usuários de Vue.

Nossa, eu já achei o ferramental do Angular anos luz à frente daquele que via no Vue.

itexto