Reactをやめると宣言して3年目、まだ終わらない
Django製の掲示板ソフトMisagoが、2023年末に「React.jsをやめてhtmxに移る」と宣言した。読み込むJavaScriptは圧縮前で合計1.4MB。移行はいまも続いている。
みずき:…JavaScriptが3つで、圧縮前に合わせて1.4MB。掲示板をひとつ開くのに、これだけ落としてくるんだって。
ひかり:ちょっと待って、1.4メガっ!? 掲示板って、文字が並んでるだけだよねっ? どこにそんな重さが要るのー!
ことね:そこが今回の急所なのよ。Misagoという掲示板ソフトの作者が、2023年の暮れに「React.jsをやめてhtmxに移る」と宣言したの。その投稿がいま、海外の技術者の掲示板で掘り起こされて読まれているのね。
ひかり:ことね先輩、Reactって……名前はよく聞くけど、そもそも何をする道具だったっけー?
ことね:ブラウザの中でJavaScriptが画面を組み立てる作りね。サーバーはデータだけ渡して、見た目は手元で組む。htmxは逆で、押したところだけサーバーが完成した形のHTMLを返して、その一部分だけ差し替えるの。ページの一部を「動く島」にする感じ。
みずき:…で、なんでやめるの。流行りで入れて、流行りで捨てるだけじゃないの。
ことね:理由が具体的なのよ。同じ画面をDjangoのテンプレートとReactの両方で二重に書く。管理者がテンプレートを直しても、Reactが上から塗り替えてしまう。会員にもゲストにも同じ画面を出すためにAPIが要る。翻訳ファイルが2つに割れて配信も太る。プラグインを作る人まで両方書かされる。……要するに、作り手の手数が全部2倍になっていたの。
みずき:…で、宣言から2年半以上たって、公開されてる最新版はまだ0.39系。今年6月にもhtmx回りの直しが入ってる。捨てるほうが、入れるより時間かかってるわけね。
ひかり:入れるときは1日で入っちゃうのにねー……。あっ、部室の棚と一緒だっ! 置くのは一瞬なのに、片づけは何年もかかるやつー!
まとめ:入れるのは一晩、捨てるのは何年がかり。散らかるものは、だいたいそうやって増えていく。