VanJS – Uma framework sem JSX baseada em JavaScript puro

Uma nova biblioteca de UI em JavaScript, VanJS, promete interfaces reativas em menos de 1 KB usando funções simples em vez de JSX ou de uma etapa de build, o que gera comparações com React, Preact, Solid, Mithril e outras frameworks “mínimas”. Os comentários debatem se a otimização extrema do tamanho do bundle ainda importa com redes modernas, mas muitos argumentam que menos ferramentas, execução mais rápida em dispositivos de baixa potência e modelos mentais mais simples são vantagens reais. O fio também revela uma fadiga mais ampla com a reinvenção constante dos stacks de front-end, além de interesse genuíno em reatividade baseada em sinais, interoperabilidade e abordagens que se afastam do virtual DOM e de pipelines de build pesados.

Recepção Geral & Objetivo

  • Muitos veem VanJS como mais uma entrada numa longa linha de bibliotecas minimalistas de “JavaScript reativo puro”, semelhantes a Xeact, Hyperapp, Arrow, Mithril, etc.
  • Alguns são céticos em relação a mais uma framework, mas outros argumentam que a experimentação é valiosa e que foi assim que as principais frameworks de hoje surgiram.
  • Vários apreciam o fato de ela ser pequena, conceitualmente simples e fácil de bifurcar ou estender.

Tamanho, Desempenho e Custos de Rede

  • Forte foco no tamanho abaixo de 1 KB; alguns argumentam que o tamanho da framework é irrelevante em comparação com imagens/fontes e que ela será cacheada de qualquer forma.
  • Outros respondem que o tamanho do JS ainda importa, especialmente para dispositivos mais modestos e planos de dados limitados, e que o custo de execução, não apenas os bytes, afeta a UX.
  • Os próprios benchmarks do VanJS são citados para afirmar que ele supera o React ao atualizar localmente sem um virtual DOM.
  • Um subfio observa que adicionar até pequenas conveniências (por exemplo, constantes de SVG/MathML) é deliberadamente evitado para manter os bytes baixos; alguns elogiam isso, outros veem como sobre-otimização.

Sem JSX, Sintaxe de Visualização Baseada em Funções

  • Um tema importante é a ausência de JSX:
    • Fãs de JSX veem sua ausência como uma desvantagem; preferem tags aninhadas, semelhantes a HTML, pela legibilidade e clareza estrutural.
    • Opositores consideram JSX uma muleta histórica, um desajuste sintático que exige uma etapa de build, e argumentam que chamadas de função em JS puro são mais limpas e evitam ferramentas extras.
  • Alguns observam que o React pode ser usado sem JSX e que a sintaxe do VanJS acaba sendo semelhante ao React sem JSX.
  • Há debates prolongados comparando a legibilidade de chamadas de função aninhadas com árvores XML/HTML, sem consenso claro.

Reatividade, Estado e Ciclo de Vida

  • VanJS usa objetos simples “state.val” (semelhantes a sinais). Alguns acham isso intuitivo e conciso; outros acham a formulação “val deve ser imutável, mas é definido via um setter” confusa à primeira vista.
  • Surgem perguntas sobre recursos ausentes: hooks de ciclo de vida (onMount/onCleanup), stores e construções de controle de nível mais alto como For/Index/Show.
  • O carregamento assíncrono de dados é discutido; VanJS suporta uma abstração no estilo Await e atualizações de estado, mas os padrões idiomáticos não ficam imediatamente óbvios a partir dos exemplos da página inicial.

Reflexões Mais Amplas & Alternativas

  • Alguns preferem continuar com ferramentas existentes (React, Preact, Solid, Svelte) ou migrar para htmx/LiveView e linguagens não-JS via WASM ou compile-to-JS.
  • Um tema recorrente é o “círculo das frameworks”: ferramentas mínimas acumulam recursos, tornam-se complexas e inspiram uma nova onda de substitutas pequenas como o VanJS.