なぜすべての人がReactを使うのに、私たちは使わなくてもいいのか?

なぜReactを使うのか、私たちはなぜ使わなくてもいいのか?Reactの必要性と複雑さについての話。フロントエンドの戦争の歴史とHotwireの誕生の理由。

bamchi 3,736

なぜ皆がReactを使うのに、私たちは使わなくてもいいのか?- フロントエンドの戦争の歴史とHotwireの誕生理由

最近のウェブ開発の話を聞くと
いつも同じ言葉が出る。

「フロントはReactでやらないと。」
「最近は全部Reactを使う。」
「Reactを学ばないと開発者になれない。」

しかし、本当でしょうか?
いいえ、正確に言うと半分だけ正しい言葉です。

Reactがいいライブラリであるのは事実です。
しかし問題は…

Reactが「必要な状況」は本当に全ウェブサービスの10〜20%程度だということです。

そして驚くべきことに、
Rails開発者が作るほとんどのサービスは
その10〜20%には含まれません。


#1. Reactが定着するまで多くのライブラリが壮絶に敗れた

初心者開発者たちは知らない事実が一つあります。

Reactは最初から「絶対的な強者」ではありませんでした。
それより前に存在した多くのフレームワークやライブラリは
今ではほとんど消えてしまいました。

  • AngularJS (死亡)

  • Ember.js (死亡寸前)

  • Backbone.js (ほとんど消えた)

  • Knockout.js

  • ExtJS

  • Meteorフロントエンドレイヤー

  • jQuery + SPAフレームワークたち

  • Mithril, Riot, Preact…

フロントエンドのエコシステムは
10年間で100以上の技術が台頭し、98%が消滅する難局でした。

Reactだけが生き残った理由は大きいです:

  • それなりに構造が良かったし

  • それなりにメンテナンスがしやすかったし

  • それなりに企業が採用したからです

しかしこれはReactもいつか消えることを意味します。
なぜならフロントエンド技術の本質はいつも同じだからです。


#2. Reactもだんだん大きく複雑になっている(現実)

初期のReactは本当に単純でした。
「UIは状態(state)の関数だ。」

しかし現在のReactはどうなっているでしょうか?

  • React

  • ReactDOM

  • JSX

  • Babel

  • Webpack

  • Vite

  • Next.js

  • Zustand

  • Redux

  • Suspense

  • Server Components

  • hydration

  • client/server boundary

  • streaming

  • routing

  • bundler

  • compilerベースのレンダリング…

これらすべてが
Reactエコシステム内で「必須の議論」になってしまいました。

Reactはもはや単純なライブラリではありません。

Reactは独自の複雑な世界になり、年々難しくなっています。

こうなるとどんな問題が生じるでしょうか?

  • 新人開発者の参入障壁が急増する

  • チーム全体がReactの専門家でないとメンテナンスが難しくなる

  • プロジェクトの初期速度が極端に遅くなる

  • サーバーは単純なのにフロントが核心的複雑さの原因になる

そしてこの質問が続きます。

「私のサービスは本当にReactが必要か?」


#3. ほとんどのSaaS、ウェブサービスにはReactは必要ありません

Reactが必要な状況は主に2つあります:

  1. リアルタイムでUIが継続的に変化する複雑なSPA

    (例: Figma, Slack(Web), Notion, Trelloなど)

  2. 大規模フロントエンド組織 + マルチチーム協力が必要な超大規模プロジェクト

しかしRails開発者が作るサービスはどうでしょうか?

  • CRUDサービス

  • ダッシュボード

  • ブログ

  • コミュニティ

  • データ検索中心サービス

  • フォーム中心サービス

  • 顧客管理

  • 内部ツール

  • SaaS

  • ECバックオフィス

このようなサービスは
Reactの半分の機能さえ必要ありません。

そしてReactを使うと
開発スピードはむしろ遅くなり
複雑さが急激に増します。


#4. この背景から生まれた技術がHotwireです

HotwireはRailsチームが提案した技術スタックであり
この哲学を中心にしています。

「フロントエンドの80%はReactのように複雑である必要はない。」

Hotwireの構成はシンプルです:

  • Turbo (HTMLストリーミング + 部分更新)

  • Stimulus (小さなJavaScriptエンジン)

  • Cable + Streams (リアルタイム)

しかし核心はこれです。

HTMLそのものを更新する方法がほとんどのウェブサービスで最も速く、最も簡単で、最もメンテナンス可能である。

Reactのように
状態 → 差分 → レンダリング → hydration…
このような複雑なプロセスはありません。

HotwireはRailsの哲学をそのまま受け継いでいます:

  • 単純さ

  • 生産性

  • 繰り返し速度

  • メンテナンス性

  • コードの少なさ

  • 開発者の幸福

そして驚くべき現実:

実際に作ってみるとReactよりも3倍速く、

コード量は1/5程度であり、

バグは劇的に減少します。


#5. Reactを使わなくてもいい理由 — Hotwireが既に解決している

Reactが解決しようとしていた問題の10個のうち

Hotwireは7〜8個をサーバー中心の方法で解決します。

例:

問題 Reactの方法 Hotwireの方法
UI更新 差分計算 → レンダリング 単にサーバーが送ってきたHTML断片
状態管理 Redux/Zustand サーバー状態 = UI状態
ルーティング フロントエンドルーター Turboでページ遷移最適化
リアルタイム WebSocket + クライアントレンダリング Turbo Streamで直接HTML更新
SEO 別設定 サーバーレンダリング100%
ビルド Babel/Webpack/Vite なし (ビルドなし!)
複雑さ 高度化 低い

HotwireはRails開発者の生産性を劇的に向上させます。


#6. ではReactはどうなるのか?いつか消える。ほぼ確実に。

なぜならフロントエンドの歴史は繰り返されてきたからです。

  • 最初は単純なUIライブラリ
    → 機能がだんだん大きくなり
    → 複雑になり
    → 組織は維持できず
    → 別の技術が登場
    → 世代交代が起こる

Reactもこの道を歩んでいます。

実際に既に兆候が見られます。

  • React Server Componentsは開発者が反発するほど複雑

  • パフォーマンスの問題

  • Next.jsがReactのルールを主導(React本体が独立していない)

  • 競合者(Solid, Qwik, Svelte, HTMXなど)が登場

  • 「ビルドなし + サーバー中心ウェブ」の流れが再浮上

現在むしろ開発者たちは言います:

「最近のウェブはあまりにも複雑になった。再び単純さが必要だ。」

この流れは歴史的に常に正しかったです。

  • メインフレーム → PC(単純性回帰)

  • SOAP → REST(単純性回帰)

  • jQuery時代の難局 → React(単純性回帰)

  • 複雑化したSPA → Hotwire/HTMX(単純性回帰)

Reactは最終的に消える。ただ「いつか」の問題だけです。


#結論 — 私たちは技術を選ぶのではなく、方向を選ぶのです

Reactを学ばないと言うのではありません。

Reactが必要な時は必ず使えばいいです。

しかしほとんどのサービスにはReactは必要ありません。複雑な技術を使う瞬間に速度が遅くなり、メンテナンスが難しくなります。

Rails + Hotwireはこう言います:

「ウェブは本来単純でなければならない。

サーバーがHTMLを提供し、ブラウザが表示すればいい。

すべての複雑さは必要な時だけ少しずつ重ねればいい。」

この哲学は

AI時代の開発方法とも完璧に一致します。

初心者なら特にHotwireを使う理由が強力です。

  • 速いです

  • 簡単です

  • 明確です

  • バグが少ない

  • サーバー状態 = UI状態

  • ビルドシステムがありません

  • メンテナンスが簡単です

  • 1人開発者に最適

そして最も重要な言葉:

HotwireはReactよりもはるかに長く続く技術です。Railsの哲学は20年を乗り越え、これからも変わらないでしょう。

コメント

コメントする

メールアドレスは公開されず、返信通知にのみ使用されます。

続けて読む

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.