Scribble at 2024-06-18 10:08:18 Last modified: 2024-06-19 07:03:41
React だけに限った話ではないから、僕もこのサイトで「React 小僧」とか JavaScript しか書けないくせに「エンジニア」などと詐称しているガキどもを罵倒しているわけだが、要するにフロント・エンドだけでものごとを解決しようとか、あるいは解決できると思っている未熟なコーダどもには、React だろうと Vue.js だろうと広く自制や反省を促したいという趣旨で上の記事を紹介したい。
ちなみに、この記事を取り上げている Hacker News では、確かに JavaScript によるフロント・エンドの再構築というプロセスには一定の効用があったし、UI デザインとしても、UX のパフォーマンスとしても、それからデザイン・パターンとしての効率向上という点でも多くの支持を得ていたことは確かだ。しかし、俗に言う「フレームワーク」の大半がそうであるように、高度で複雑なことをしたいユーザと、それからものごとを簡単にしたいというユーザとの両方から要望を採り入れて、オライリーの解説本などが出版される頃には肥大化が進んで多くの利点が失われてしまう。そして、僕らのような自分の手持ちの道具と技術と知識でものごとを解決しようとする技術者からは(Hacker News のコメントにも見られるように)ゴミ扱いされ始める。
もっとも、僕らのようなレベルになると情報セキュリティを始めとする非機能要件についても最初から(有能な人間は "security by design" などと言われなくても)考慮しているので、JavaScript のフロント・エンドというよりも、それを馬鹿や無能や素人に使わせた場合のリスクがどれほど深刻であるかも分かっているのだ。そして、世の中の大半の自称「エンジニア」は、技術者として凡庸であるどころか、身の程もわきまえずにパソコン教室や専門学校を出たていどのことで業界へもぐりこんだ未熟者か無能なのだから、リスクしかないというのが真面目な分析だ。
よって、もちろん使う側が最も困った要因なのだが、道具に罪が無いかと言えば、そうでもない。現状の肥大化したシステムはもちろんのことだが、そもそも設計思想に問題があると思う。仮想化した DOM にコンテンツを格納してから処理するなんてことは、メモリの浪費を伴うし、そして現実にページの表示は静的なコンテンツどころかスクリプト言語のコードによる処理を埋め込んだページよりも遅い。たとえば、WordPress で運用されているサイトに比べて、おそらくは React のような JavaScript ライブラリでフロント・エンドを操作している『毎日新聞』のサイトなどは、全てのページの表示がことごとく遅い。僕の自宅は NURO の光回線を契約していて、パソコンも高画質ゲームをプレイできるくらいには高いスペックをもっているが、それでも『毎日新聞』のトップ・ページは、アクセスした直後の白紙状態からコンテンツが展開されるまでに10秒近くもかかる。これは、もちろん僕らのようなシステム開発もデザインもできるナショナル・クライアント案件のフルスタック人材(本来、僕はそんな兼業レベルの些末な職能を遥かに超える能力をもっている、「ウルトラ器用貧乏」と言うべき人材だが)から見れば、明らかに設計ミスである。