Vedovelli

O que devo aprender: Mithril, Vue ou Angular?

Esta pergunta foi colocada no Quora tendo recebido diversas respostas, porém, me chamou a atenção a resposta dada por Evan You (criador do Vue.js) a qual representa não apenas o que penso, mas também o que faço. Ela responde de forma didática tanto a aqueles que estão em dúvida sobre o que aprender quanto aqueles que vivem perguntando se “um dev abandonou ferramenta X por estar aprendendo ferramenta Y”. Resposta curta: isso não existe. Aprender Y não invalida X.

Tópico original: https://www.quora.com/Which-should-I-learn-Mithril-Vue-or-Angular

Segue a tradução:


Por Evan You

Disclaimer: sou o criador do Vue.js

Meio que me aborrece o fato de muitos responderem com comparações técnicas ou simplesmente dizendo “use framework X” sem antes compreender o que a pessoa que fez a pergunta está tentando atingir. Então vamos fazer a pergunta correta antes de responder: “o que você está buscando ao escolher um framework?”

1. Conseguir rapidamente um emprego;
2. Construir algo o mais rápido possível;
3. Como uma experiência para aumentar suas habilidades em Javascript.

Se o objetito é simplesmente (1) então você fará melhor em escolher Angular ou React (Nota: não Angular 2, pelo menos por enquanto) uma vez que estes dois são mais maduros, mais largamente utilizados e lhe dão uma melhor “empregabilidade” no mercado. Angular 1 sendo mais voltado para entreprise e React mais voltado para startps.

Para objetivo (2) depende mais do tipo de aplicação que você está construindo: é uma aplicação largamente renderizada pelo backend ou uma Single Page Application? Para a primeira você fará melhor em escolher algo que é leve, menos intrusivo, não requer ferramentas específicas e trabalha bem com HTML (dica: Vue). Para SPAs então temos que analisar comparações técnicas e performance, funcionalidades, se a API é amigável, ferramentas de suporte, maturidade do ecossistema etc. Mas este é um tópico grande por si só e pode ser muito subjectivo e específico por projeto.

Para objetivo (3) você fará melhor iniciando com algo leve, por que frameworks que provêm soluções completas como Angular/Ember jogam de cara muitos conceitos para que se aprenda e aplique, e por que você cede muito controle para o framework, no final você acaba aprendendo sobre as APIs e convenções do framework ao invés de obter habilidades universais. Por outro lado bibliotecas menores, devido às suas APIs menores, lhe forçam a ter mais controle e a compreender como as diferentes partes se encaixam (o que lhe ajuda a aprender frameworks mais completos posteriormente).

Agora vamos à minha sugestão: aprenda Javascript primeiro e aprenda de verdade e bem. Esta é a aposta mais segura. Com uma base sólida você poderá pegar o básico de Vue/React/Mithril/Riot em questão de dias. Procure desenvolver uma app pequena com cada um deles, sem ferramentas complexas envolvidas, apenas para (1) compreender quais problemas os frameworks resolvem; (2) identificar sua própria preferência – ex. qual estilo de API lhe faz mais produtivo. A partir daí você pode então tentar frameworks maiores porque você estará muito mais preparado para eles. Todo este processo provavelmente tomará algum tempo, mas será um valioso investimento, muito melhor do que mergulhar a fundo num único framework por alguns meses e então se dar conta de que não é para você.

Por outro lado – você deveria também obter habilidades não relacionadas a qualquer frameworks tais como ES2015, Node.js básico, como o NPM funciona, sistema de módulos (Browserify/Webpack/System.js) – estas ferramentas são onipresentes no desenvolvimento de grandes aplicações SPAs independente do framework que se esteja usando.

A idéia central é “não coloque todos os seus ovos numa única cesta”. Escolher um framework Javascript não é um cenário “um-ou-outro” e você não deve se prender a um framework para sempre. E não importa o que os outros digam, é impossível tomar a melhor decisão sozinho sem antes testa-los e ter uma experiência pessoal com eles. Se você escolher apenas um e ignorar os demais, você certamente estará fazendo errado.

Powered by WPeMatico