"Eu não procuro saber as respostas, procuro compreender as perguntas." - Confúcio
Tempo estimado de leitura: 3min
Como confúcio bem falou, perguntas necessitam ser compreendidas. Assim, é preciso saber qual força principal move a pessoa que pergunta. Neste caso, são normalmente três:
- Conseguir um emprego em um curto prazo;
- Construir um app o mais rápido possível;
- Como uma experiência de aprendizado conjunta em javaScript;
Antes de começar, vamos elencar alguns dos frameworks frontend para js: knockout, backbone, ember, angular1, angular2, react, vue, riot e mithril.
Lembrando que jQuery não é um framework. Algumas pessoas podem argumentar que tampouco react o é, e estão com sua parcela de razão. Porém, react não é só uma biblioteca, é todo um ecossistema que o acompanha e por isso é qualificado aqui como um framework. Ver conceito de framework aqui.
Conseguir um emprego em um curto prazo
Neste caso, você só tem duas opções no mercado: angular1 e react. Angular1 sendo uma escolha de empresas mais convencionais e react uma escolha mais voltada para startups.
No mercado brasileiro, angular1 realmente se sobressai, mas com a chegada de angular2 e a adesão em massa de react por parte dos americanos no ano de 2015 já começaram a surgir startups usando react e a tendência é crescer, especialmente quando a versão oficial do angular2 não é liberada. Quando esta for liberada, com certeza angular2 é uma escolha forte aqui, posto que as empresas que já utilizam angular1 podem fazer integração com a nova versão, ao invés de abandonar toda base de código, como aconteceria com uma migração para react.
Construir um app o mais rápido possível
Ok, aqui vai depender bastante das suas habilidades, mas como você quer aprender algo pra construir o mais rápido possível, vamos partir do pressuposto claro de que você não quer usar o framework que você já conhece.
Neste caso, vi algumas demonstrações com vue.js e realmente parece ser um framework capaz de poupar você bastante linhas de código principalmente para projetos mais simples no frontend ou que possuam bastante renderização no backend.
Como uma experiência de aprendizado de javaScript
Aqui Angular1 oferece uma grande desvantagem. Angular1 talvez seja o framework mais "fechado em seu mundo" com muita sintaxe própria e diretivas próprias, então não recomendo para iniciantes. Angular2 tampouco é uma boa escolha pelos mesmos motivos, mas também porque aposta pesado em typescript. Embora typescript seja promissor, com certeza não servirá para quem busca uma experiência de aprendizado de javaScritpt.
A melhor opção neste caso, é usar Mithril que possui uma api minimalística no estilo MVC e não vai esconder muito o javaScript de você. Quanto menos recursos um framework tiver, melhor para você pegar o jeito com a linguagem.
React tampouco esconde javaScript de você, mas não será um framework que propiciará seu aprendizado. Será um framework que aumentará seu aprendizado da linguagem.
Backend
Citamos apenas frameworks de frontend e ignoramos frameworks de backend como express e meteor, porque a gama de opções no servidor é bem menor. Mas neste caso express leva vantagem certa nos aspectos 1 e 3. No aspecto da rapidez, ao que parece meteor propicia um ambiente muito bom para o desenvolvimento de aplicações em tempo real.
Conclusão
Se você é totalmente iniciante ou não possui muita experiência, o melhor que você pode fazer é dominar a linguagem. Garanto que você vai ser capaz de absorver qualquer framework muito rapidamente. Acredite, qualquer framework.
Nota
Existe um outro aspecto não considerado, mas que será tema de outros artigos. A facilidade de transição para o desenvolvimento mobile. Neste caso, react e angular levam vantagem clara.