Reactの清算: 業界で最も好まれるフレームワークはまだ正しい選択か?

10年以上にわたり、Reactはフロントエンド開発の重力中心となってきました。Virtual DOM と宣言的コンポーネントの導入により、ユーザーインターフェースの構築方法が革命的に変わり、2010年代初頭の「jQueryスープ」から業界を脱却させました。しかし、開発者、CTO、エンジニアの声が高まり、挑発的な質問が投げかけられています: 本当にReactが好きな人はいるのか?

Hacker News や技術系ブログでの最近の議論は、私たちが「ポストReact」時代に突入していることを示唆しています――必ずしもReactが消えるという意味ではなく、デフォルトの選択肢としての地位が積極的に疑問視されている時代です。批判はもはや構文だけに留まらず、パフォーマンス、セキュリティ、そしてモダンウェブの根本的なアーキテクチャにまで及んでいます。

モノカルチャーへの反論

最も広く見られる批判の一つは、Reactが「すべてを釘に見立てるハンマー」になってしまったという点です。業界は新しいプロジェクトの会話が「Reactを使おう。みんなReactを知っているから」という反射的なものに陥っており、「制約は何か、どのツールが最適か」という議論が後回しにされています。

このネットワーク効果は自己増殖的なサイクルを生み出しています。多くの開発者がReactを知っているため、企業はReact開発者を採用し、それがさらに多くの開発者にReactを学ばせる結果となります。しかし、この「労働の裁定」はしばしば技術的コストを伴います。批評家は、このモノカルチャーがフロントエンドのイノベーションを阻害し、単純な問題に対して過剰にエンジニアリングされた解決策を生むと主張しています。

技術的負債と「狂気」のような複雑性

社会的なダイナミクスを超えて、Reactの進化する複雑性に対する根深いフラストレーションがあります。クラスコンポーネントからHooksへの移行、そして現在はReact Server Components(RSC)へと向かうことで、多くの人がフレームワークが自らのルールでゲームをしていると感じています。

Hook の闘い

多くの開発者はReactのhooks、特に useEffectuseMemo が直感に反し、習得が難しいと感じています。あるコメント者は、hooksは「正しく使うのが難しく、パフォーマンス良く使うのはさらに難しい」と指摘し、しばしば不必要な再レンダリングや「 churn 」を引き起こし、ユーザー体験を低下させます。

ハイドレーション税

Reactのデフォルトのハイドレーションパターンは、パフォーマンスのボトルネックとして頻繁に指摘されています。サーバーでHTMLをレンダリングし、クライアントで同じJavaScriptで「ハイドレート」するプロセスは、冗長で無駄だと見る人もいます。この「JS重視のアプローチ」は、特に低性能ハードウェアや遅い接続環境のユーザーに対して、長期的なパフォーマンス目標と相容れないと主張されています。

セキュリティとガバナンス

最近のセキュリティ脆弱性、特にReact Server Components における重大なリモートコード実行(RCE)欠陥(CVE-2025-55182)などが懸念を高めています。一部の開発者はバグだけでなく、Vercel と React チームのガバナンスやコミュニケーションにも不満を示し、いくつかの対応を「無謀でコミュニティに対して失礼」と表現しています。

代替案: Svelte から Vanilla HTML まで

フラストレーションが高まるにつれ、開発者はさまざまな代替手段へと移行しています。各代替はReactの問題の異なる側面を解決します。

  • Svelte と Solid.js: これらのフレームワークは、作業をブラウザからコンパイル時に移すことで、Virtual DOM の必要性を排除し、より高速で軽量なアプリケーションを実現すると評価されています。
  • Vue: コンポーネントが一度実行されリアクティブツリーを構築するVueのモデルは、直感的でReactが要求する手動最適化が少ないと感じる人もいます。
  • HTMX と Liveview: ロジックをサーバー側に戻す「ハイパーメディア」システムへの関心が再燃しており、クライアントへ配布されるJavaScriptの量を減らし、状態管理プロセスをシンプルにします。
  • 「HTML-First」アプローチ: Web の基本—ベースラインHTML とプログレッシブエンハンスメント—に立ち返ることを提唱する動きが拡大しており、アクセシビリティとパフォーマンスを確保します。

反論: なぜReactは依然として勝つのか

批判が殺到する中でも、多くの開発者は依然としてReactを擁護しています。その支持理由は実務的であることが多いです。

「Reactは、試した他のすべてのフレームワークを除けば最悪のJSフレームワークだ。」

多くの人にとって、JSX のエレガンスと「コンポーネントは関数である」というシンプルなメンタルモデルは、フラストレーションを上回ります。支持者は、宣言的でコンポーネントベースのアプローチこそが、大規模で本当に複雑な UI を管理する唯一の方法であり、手動の DOM 操作は保守不可能な「スパゲッティコード」のレシピだと主張します。

さらに、エコシステム—TanStack Query のようなライブラリや膨大なコミュニティ主導のコンポーネント—は、代替手段がまだ追いついていないレベルのツール群を提供しています。これらの開発者にとって、企業コードベースの「ゆとり」はツール自体の欠陥ではなく、悪いエンジニアリング文化の結果です。

結論: 視点の転換

React を巡る議論は、フレームワークが「良い」か「悪い」かというよりも、ウェブの大多数にとって 正しい ツールかどうかに関するものです。業界は、JS 重視のフロントエンドという「肥大クライアント」時代がピークに達したことに気付き始めています。

将来がサーバーサイドレンダリングへの回帰であれ、細粒度リアクティビティへのシフトであれ、ハイブリッドアプローチであれ、教訓は明確です。デフォルトフレームワークの時代は終わりつつあります。次の10年で最も成功するエンジニアは、ハイプを超えて自分のプロジェクトの具体的な制約に合ったツールを選べる人であり、履歴書で最も人気のあるツールを選ぶ人ではありません。

Sources