Por que Vanilla JavaScript
Os defensores do JavaScript “vanilla” argumentam que navegadores modernos, Web Components e helpers leves personalizados são suficientes para muitos aplicativos, e que frameworks grandes como React ou Angular frequentemente introduzem complexidade desnecessária, ferramentas de build e sobrecarga de desempenho — especialmente para equipes pequenas ou UIs simples. Outros contrapõem que os frameworks valem o custo em projetos moderadamente complexos ou de longa duração por imporem estrutura compartilhada, padrões previsíveis e onboarding mais fácil, mesmo adicionando abstração e mudanças frequentes. Vários participantes observam como TypeScript, JSDoc e LLMs mudam novamente os trade-offs, facilitando trabalhar diretamente com a plataforma enquanto ainda se obtém segurança de tipos e suporte à geração de código.
Escopo do Vanilla JS vs Frameworks
- Muitos concordam que o vanilla JS é viável e agradável para projetos pequenos ou pessoais: menos dependências, sem etapa de build, controle total sobre o navegador “como o framework”.
- Vários argumentam que o JavaScript moderno (recursos do ES5+) e as Web APIs agora são bons o suficiente para que frameworks pesados muitas vezes sejam desnecessários para CRUD básico e “interatividade pontual”.
- Outros rebatem que, para qualquer “interface de usuário moderadamente complexa”, abordagens em vanilla tendem a se acumular até virar um framework sob medida, mal documentado, com decisões de design ad hoc.
Trabalho em equipe, Estrutura e Escalabilidade
- Tema forte: frameworks fornecem convenções compartilhadas, previsibilidade e guardrails para equipes, especialmente à medida que bases de código e número de pessoas crescem.
- Usar um framework popular simplifica contratação e onboarding; novos desenvolvedores e LLMs já conhecem os padrões.
- Críticos observam que os próprios frameworks se fragmentam (variantes de React, gerenciadores de estado, sistemas de estilização), então escolher um deles não elimina totalmente a discordância ou a complexidade.
Web Components e Abstrações “Leves”
- Alguns defendem Web Components e JavaScript vanilla modular como um meio-termo escalável: UIs componentizadas, imports dinâmicos e pools de componentes compartilhados sem ferramentas pesadas.
- Outros veem as abstrações personalizadas do artigo (incluindo EHTML) como micro-frameworks de fato, adicionando mais uma camada sob medida para aprender.
Sistemas de tipos e Ferramentas
- Vários comentários promovem TypeScript ou JSDoc/@ts-check para verificação estática, com divergência sobre se uma etapa de build é aceitável ou necessária.
- Há ceticismo sobre setups “zero build” para apps complexos devido à ausência de minificação/code-splitting e à fragilidade de longo prazo de ferramentas customizadas.
Performance, UX e Escolhas de Arquitetura
- Debate sobre SPA vs aplicativos multi-página: alguns insistem que MPAs são rápidas com cache adequado; outros dizem que SPAs podem parecer mais ágeis e dinâmicas.
- Vários criticam o React por adicionar latência e complexidade a UIs que precisam apenas de algumas atualizações no DOM; outros veem o React como uma “parafusadeira elétrica” poderosa para SPAs maiores.
LLMs e o Futuro dos Frameworks
- Alguns esperam que os LLMs reduzam a necessidade de grandes frameworks, tornando mais fácil trabalhar diretamente com APIs da plataforma ou pequenos helpers.
- Outros observam que os frameworks funcionam como guardrails para código não determinístico gerado por LLMs e que os LLMs já funcionam bem com stacks populares como React/TypeScript.