A guerra das frameworks de javascript

Hello world 👋 como vai esse fim de semana? Espero que esteja tudo bem contigo!

Hoje vamos falar sobre as bem ditas frameworks. O tema onde existe muitas guerras (sem necessidade, e já vais perceber o porquê ao longo do post) e onde muitos programadores juniores se focam demasiado em tentar perceber qual é a melhor se é X ou Y.
Primeiramente, vou falar de apenas 2 frameworks, apenas aquelas que conheço e apontar os prós e contras de cada framework.

Mas, mais uma vez, aviso, não te aventures antes de saberes e perceberes bem os conceitos de Javascript.

Não perdendo muito mais tempo, apenas vou escrever aquilo que sei, e aquilo que sinto mais confiança em escrever. Existem muitas no mercado, com propósitos diferentes, e é praticamente impossível um frontend developer saber bem cada framework.

Portanto, existe React (não é uma framework em si, mas já me explico melhor mais à frente), Vue, Angular e Svelte. Com SSR (Server Side Rendering) existe Nuxt e Next.
Vamos falar portanto aqui sobre React e Vue. Foi com ambas que tive/tenho mais contacto.

1. React

react

A primeira que vos venho falar hoje é sobre React. O React foi desenvolvido pelo Facebook, é open-source, a sua release inicial foi em 2013, e serve para construir boas UI's (User Interfarces), e é por esta razão que não é considerada uma framework, porque depende sempre de libraries externas, por exemplo ter uma store é preciso redux, e para isso temos que adicionar esse dependência. Se quisermos rotas diferentes, temos que instalar no nosso projeto o react-router. Estas dependencias nao estão incluidas no React, e daí ser uma vantagem. Deixa sempre o nosso site/app mais leve. Secalhar um artigo para mais tarde sobre este assunto 😜. Explicando então na minha opinião os pros e contras do react:

Pros:

  • Component-based: código reutilizado;
  • Óptima performance;
  • Comunidade grande;

Contras:

  • JSX é um requisito;
  • Documentação fraca;

Apenas trabalhei ano e meio sobre React, mas estas são para mim as vantagens e desvantagens de usarmos React.

Existe muitos tutoriais/recursos para iniciarmos no React, achei mais complicado de perceber os conceitos, porque a documentação do mesmo era fraca e um pouco confusa (isto na altura que eu aprendi, coisa de 2/3 anos). Então optei por virar para cursos online no Udemy. Recomendo os cursos do Stephen Grider (esperas pela promoção, varia entre os 11 / 12 €), ou o curso vindo do freecodecamp, ambos para quem está a começar a dar os primeiros passos.

React tem uma comunidade gigante, que foi uma das coisas que me fez realmente gostar da library. Existe várias vias como do discord, spectrum ou se preferires, também existe slack.

Se não tivermos cuidado com o React, aquilo que expliquei em cima, se tivermos muitas dependências pequenas e espalhadas pelo site/app então isto é considerada uma desvantagem, que no bundle final, vai deixar a aplicação mais pesada e mais lenta.

Isto acontece porque as libs são feitas por programadores diferentes, e nem sempre é pensado/feito com o melhor desempenho/maneira correta.

Para mim, Redux, que é usado em grande maioria dos projetos, é complexo de se perceber. Para fazeres algo simples, tens de seguir todo um padrão e regras que se não forem feitas exatamente daquela maneira, podes te perder facilmente.

Resumindo: React é uma ferramenta simples, mas como tudo, á medida que formos adicionando funcionalidades/libraries, a sua complexidade também aumenta.

2. Vue

Vue from criado pelo Evan You, é open-source, a sua release inicial foi em 2014. Foi criado com base do Angular, e com algumas coisas do React, e tem controlo sobre o DOM. Vue tem a sua própria ferramenta, para configurarmos o nosso projeto, o vue-cli, que ajuda e muito a começar um projeto, porque tem toda uma interface gráfica que nos facilita o nosso trabalho.

Pros:

  • Rápido
  • Component-based: código reutilizado
  • Bastante fácil de aprender e usar
  • Num único ficheiro .vue conseguimos ter HTML/CSS/JS
  • Documentação boa e intuitiva

Contras:

  • Tem menos libs criadas que o React
  • Não tem nomes como Facebook ou Google no seu portfólio, e isto torna-o menos atrativo para ser usado em porjectos de grande escala.

Penso que com o seu template engine torna bem mais simples e fácil de perceber o Vue em relação ao React. Acho que não terás qualquer problema em conseguir perceber como funciona a framework, e para isto precisas de saber as bases.

Conseguimos apenas num único ficheiro fazer HTML (também podes usar JSX), podemos fazer código Javascript/Typescript e ainda adicionar estilos com CSS, SASS, LESS, etc.

E a minha escolha é Vue. Apesar do mercado estar cada vez mais virado para React, acho que Vue é bastante mais simples. Mas isto é tudo opinião pessoal, tu podes escolher a framework que quiseres para te iniciar, todas elas fazem o mesmo trabalho, que é pôr sites/apps no ar.

Mais uma vez, obrigado por teres lido este artigo, opiniões, comentários, críticas e sugestões são mais que bem vindas!
Adeus e até amanhã 👋