Um tanto irritado com React

A evolução do React de uma biblioteca simples de UI no lado do cliente para um ecossistema dominado por hooks, server components e frameworks como Next.js está deixando muitos desenvolvedores frustrados com a complexidade crescente e modelos mentais opacos. Os comentaristas destacam pontos de dor como o uso excessivo de `useEffect`, a descontinuação do Create React App e o impulso para configurações baseadas em Node e mais voltadas ao servidor, argumentando que isso torna os aplicativos web modernos mais lentos, mais difíceis de raciocinar e menos prazerosos de construir. Alguns ainda elogiam o ecossistema e a flexibilidade do React, mas muitos estão migrando para alternativas como Svelte, Solid, Vue, Preact ou até mesmo padrões web puros para front ends mais simples e determinísticos.

React no lado do cliente vs Server Components / Next.js

  • Muitos sentem que o React “se dividiu em dois”: o React clássico no lado do cliente vs. o novo mundo de server components/Next.js.
  • Vários sentem falta de conseguir publicar um app React simples via CDN sem Node ou uma framework completa.
  • Server Components e SSR são vistos por alguns como extrapolação ou aumento de escopo; outros os veem como o futuro oficial, especialmente via Next.js.
  • Alguns suspeitam que os server components sirvam principalmente aos interesses de provedores de hospedagem (mais computação no servidor, lock-in de fornecedor) em vez de benefícios claros no nível da aplicação.

Debate sobre Hooks e useEffect

  • Hooks polarizam: alguns os chamam de uma das melhores ideias em frameworks de componentes; outros os veem como um novo paradigma confuso, diferente de FP ou OOP.
  • Reclamações recorrentes sobre useEffect gerando complexidade, condições de corrida e “spaghetti” quando é usado em excesso ou para busca de dados e orquestração de estado.
  • Outros argumentam que useEffect deve ser raro, usado בעיקרamente para sistemas externos/APIs do DOM, com dados tratados por bibliotecas (React Query, SWR, etc.).
  • Há discordância até sobre o que o próprio React ensina: a documentação mostra useEffect para buscar dados e, ao mesmo tempo, adverte contra seu uso.

Complexidade, DX e alternativas

  • Vários comentaristas dizem que apps modernos em React são mais difíceis de raciocinar do que stacks antigas (Backbone, jQuery simples, PHP, Facebook inicial).
  • Outros contrapõem que UIs complexas sempre serão complexas, e que React continua sendo um bom meio-termo.
  • Alternativas elogiadas: Solid, Svelte, Vue, HTMX, Preact, Lit, Web Components puros, às vezes com Vite; muitos dizem que elas parecem mais com o “React antigo” ou com modelos mentais mais simples.

Gerenciamento de estado e arquitetura

  • Críticas de que o React incentiva a colocalização de lógica de negócio, busca de dados e visualização em componentes enormes.
  • Alguns defendem separação estrita via Redux/MobX ou “serviços” externos, usando componentes como puro state → UI.
  • Outros observam que Redux/MobX também podem ser mal usados; equipes grandes e pressão de tempo muitas vezes levam à degradação da arquitetura independentemente do framework.

Mudanças em ferramentas e comunicação

  • O Create React App é amplamente percebido como efetivamente descontinuado, sem substituto claro na narrativa oficial.
  • Next.js é visto como o caminho abençoado de facto, o que irrita quem não está construindo apps baseados em Node.
  • Vite + bibliotecas mais leves (Preact, etc.) são comumente citados como um “CRA não oficial” prático e moderno.
  • Vários criticam a comunicação do React como inconsistente ou opaca, contribuindo para confusão e frustração.