世界を動かす技術を、日本語で。

AIはフロントエンドの失われた10年を繰り返しているのか?

概要

  • AIによるプログラマー職の変化 は、過去のフロントエンド開発の変遷と類似点が多い。
  • デスキリング(技能低下) は、技術進化によって専門性が薄れる現象。
  • 抽象度の高い作業 へのシフトは効率化をもたらすが、品質や本質的理解の問題も孕む。
  • LLMやStack Overflowの利用 は、知識やスキルのハードルを下げる一方、品質低下のリスクも増加。
  • Bauhaus運動 の思想から、工業化とクラフトマンシップの融合の重要性を学ぶ。

AIによるプログラマー職のデスキリング

  • AIの台頭 により、プログラミングという職業の専門性が低下する現象

  • JavaScriptフレームワーク導入 によるフロントエンド開発のデスキリングと同様の流れ

  • デスキリング とは、技術進化により熟練労働者の技能が不要になり、半熟練者や未熟練者でも作業可能となる現象

  • コスト削減・参入障壁低下・労働者の交渉力低下 というビジネス上の利点

  • フルスタック開発者 の増加による、専門性の希薄化

    • フロントエンドの「表のフロントエンド」としての専門技能の喪失
    • React NativeやElectron など、汎用的な技術者による複数分野の対応
  • AIによるプログラミング自動化 も同様に、熟練者の役割縮小とコスト削減を推進

抽象度の高い作業とその限界

  • 自動化・抽象化 は効率化をもたらすが、どの「詳細」を省略するかは主観的判断

  • 抽象化のコスト として、パフォーマンスや品質の低下が発生

    • Reactなどの重いフレームワーク によるモバイル端末や低速ネットワークでのパフォーマンス悪化
    • アクセシビリティやパフォーマンスへの配慮の欠如
  • Agentic AIによるコーディング は、非決定的(undeterministic)な抽象化

    • コンパイラのような決定性がなく、入力やモデル次第で結果が大きく変動
    • 「ジュニアエンジニア」に例えられるが、AIは自律的な学習ができない点が異なる

Stack Overflow・LLMによる知識獲得の変化

  • Google検索やStack Overflow による「コピペ文化」の定着

    • 適切なキーワード選定による情報検索スキルの価値低下
    • 検索アルゴリズムの変化で、専門的な答えへのアクセス難化
  • LLM(大規模言語モデル) も、この流れの延長線上

    • スキルの低い人でも「なんとなく動く」コード生成が可能
    • 抽象化の漏れ(leaky abstraction)による問題発生時には、深い理解が必須
  • 品質への無関心 と企業側の現実

    • 動けば良い、という風潮
    • AI利用を公言する企業の増加と品質管理の形骸化
    • ソフトウェア品質とビジネス成功の相関が低い現実

Bauhaus運動から学ぶもの

  • 産業化とクラフトマンシップの融合 を目指したBauhaus運動の思想

    • 工場労働者と職人が協力し、ユーザー視点に立った工業デザインを追求
    • Dieter RamsやJohnathan Iveに連なる現代デザインの源流
  • ソフトウェア開発への応用

    • クラフト(手作業)と工業デザイン(大量生産)の中間に位置するソフトウェア
    • ユーザーへの配慮と品質へのこだわりの重要性
    • 手作業によるコーディング能力の維持と、ユーザー体験への責任感

まとめと今後の展望

  • AIや自動化技術 による業界構造の変化は不可逆的
  • 抽象化・自動化の恩恵 を享受しつつ、品質や本質的理解を重視する姿勢が求められる
  • Bauhaus運動の精神 に学び、ユーザーと品質を中心に据えた開発文化の再構築が課題
  • LLMやAI利用 の是非や活用範囲について、現場ごとに議論と調整が必要
  • 職人技と効率化のバランス を模索する新たな時代の幕開け

Hackerたちの意見

「OPが嘆いてる『深い専門知識』って、実は多くの人にとってはすごく不便だったんじゃないかな。ブラウザのクセを知ったり、アクセシブルなコンポーネントを手作りしたり、CSSの特異性をマスターしたりすることで良い生活ができるのは分かるけど、これはほとんど偶発的な複雑さだよね。もっと多くの人が何かを作るのは素晴らしいことで、もしその中に遅かったりアクセスしづらかったりするものがあっても、それは人々が選ぶべきトレードオフだと思う。抽象化がユーザーに影響を与える結果を隠すって主張することもできるけど、逆に言えば、LLMは私よりもa11yの慣習を理解してるんじゃないかな。」

「LLMは私よりもa11yの慣習を理解してるんじゃないかな。」いや、他の人たちがやってたんだよ。彼らが書いたことをLLMが時々使えるだけ。彼らがもう書かなくなったら、どうなるの? > 「もっと多くの人が何かを作るのは素晴らしいことで、もしその中に遅かったりアクセスしづらかったりするものがあっても、それは人々が選ぶべきトレードオフだと思う。」それには同意するよ。みんなが増えるのはいいことだし、他の条件が同じならね。「AI」がすべてに浸透して、改善が明らかになったら、状況や感情はかなり違ってくると思う。でもそれでも、人々はその仕事をすることで「作られた」知識を持つ権利はないよね。もし帰属や報酬が真剣に取り組まれたら、あなたがその資料を作るために支払った人たちの資料だけで学ぶことができるなら、CSSを学ぶのがもっと早くて安くなるかもしれない。

問題は、アクセシビリティ、直感性、互換性、レスポンシブ性、スケーラビリティ、アーキテクチャ、パフォーマンス、そして他のあまり目に見えない「先進的」なUX/ソフトウェア開発の部分をマスターするのが常に難しいことだよね。超高レベルのフレームワークや今のLLMは、これらを台無しにして、すぐに半端なMVPを出すのをさらに簡単にしてしまった。だから「許容できる」と「まとも」の間のギャップが広がってる。 「まとも」を目指す人は、「許容できる」を推進する人たちと競うのがますます難しくなってきてる。そういう推進は理解できるし、MVPが利益を生むから、細かい部分はせいぜい「顧客満足度を上げる」だけだし(最近は、顧客なんて誰が気にするの?)。最終的には、もっと過労になって、ソフトウェアの質が急激に低下するか、仕事の満足度も下がるかもしれない。私の(残念ながら経験談だけど)例として、時々壊れたウェブサイトを修正したり、邪魔な要素をdevツールやuBlockで取り除いたりすることが増えてきた。ここにいる他の人たちも同じことをしているって聞いたよ(https://news.ycombinator.com/item?id=47042747)。これは、私が訪れるウェブサイトの基本的な機能を復元するためにやってること。昔はこんなことは必要なかったし、Flashや初期のウェブブラウザにはそもそもそんなオプションすらなかった。もう一つ、あまり経験談ではない例として、https://news.ycombinator.com/item?id=47390945 こういうカットで節約されたお金のほとんどが、ヒエラルキーの最上部にしか利益をもたらさないって気づくと、さらに悪化するよね。

以前はフロントエンド開発で生計を立ててたけど、クセや特異性を知るのは職人としての負担だったよ。確かに、参入障壁が高くなることもあったけど、そのせいで壊れたウェブサイトがたくさん生まれたし、楽しいことでも報われることでもなかった。元の著者はAIがコーディングの技術を低下させるという強い主張を持っていると思うけど、具体例はあまり説得力がないね。

その通り。どの「私たちの技術が失われている」って記事も同じように暗い形をしてる。もうそれだけでうんざりだけど、途中で自分自身に反論してることも多い。例えばこの文:> でも、どの詳細が「重要でない」と見なされるかは、非常に重要で時には主観的な決定だよね。そして最終的には、詳細は常に漏れ出てくる。そう、つまりこの新しい技術は深い技術的理解を報いるって言ってるわけで、避けられないからね。私も同意するよ。なんでこの全体のトーンが「AIが私の技術を安い商品にしてる」って感じなの?ウェブサイトは10年前よりも技術的にずっと良くなってるよ。機能が豊富で、速くて、SSL/a11y/レスポンシブ性が強いデフォルトになってる。コンテンツミルやSEO、ニュースサイトは、広告や企業のインセンティブの別のひどい失敗モードだよ。それはReactのせいじゃない!

これは主に偶発的な複雑さだ。そうなの?ここではCSSを嫌うのが楽しい趣味みたいだけど、実際には人々が使える良いリッチなユーザーインターフェースを作るのが本質的に難しい問題なんじゃないかな。確かに、ブラウザは後方互換性や複数の実装を維持する必要があって少し難しいけど、ウェブプラットフォームの他の制約に対処するためのより良いUIフレームワークや言語はまだ見たことがないよ。

「フロントエンドの失われた10年」は、a11yやセマンティックHTMLとは関係ないよ。元のトークでは、Reactやその仲間たちのせいでパフォーマンスがひどくなったって主張していて、それが2GB以上のRAMを消費するElectron CRUDアプリが生まれた理由なんだ。

「深い専門知識」が実は多くの人にとって非常に不便だったと感じているのは私だけじゃないと思う。そして、「深い専門知識」を無視してハックや怠惰な抽象化を積み重ねて、現代の数MBのフレームワークやElectronに至る便利さが、逆行だと感じているのも私だけじゃないと思う。ユーザーのコンピュータやメモリの利用状況、劣化した体験、無駄な帯域幅、80億人あたりの追加エネルギーコスト、環境への影響なんて誰も気にしないよね。> もっと多くの人がものを作るのは明らかに良いことだが、公共インフラを作るのが「明らかに良い」って言えるの?それが悪い道路や橋、失敗するシステムを意味するなら?ソフトウェアも同じことが言えるし、ほとんどのことに当てはまるよ。

「LLMは私よりもa11yの規約を理解していると思う」と反論したいね。あんたがa11yを学ぶために時間を投資してないからそう思うだけで、それは普通のことだよ。LLMは、特定の分野を深く理解していなくても、統計的に平均的な出力で人を感心させるのが得意なんだ。俺の意見としては、自分が評価できないLLMのタスクを見過ごすべきじゃないと思う。1. それに、評価する必要もないんだ!時間は限られてるし、アクセシビリティは広範だし、基準もたくさんあるし、スクリーンリーダーは使いにくいこともあるからね。だけど人間には常識があって、気にかけることができる。気にかける人間がテストしてインタラクションを考えるのに匹敵するa11yのトレーニングデータが十分にあるとは思えない。残念ながら、人間のソフトウェアQAは今、絶滅の危機に瀕してる。

「もっと多くの人が何かを作るのは素晴らしいことだ」と言うけど、それがどうして素晴らしいの?例えば、今のSteamでは毎年何千ものゲームがリリースされてるけど、その多くは誰もプレイしないようなゴミみたいなものなんだ。だから、実際の質の高いものが埋もれてしまうこともある。アプリストアでも同じことが起きてる。機会を制限するゲートキーピングは悪いけど、質に関するゲートキーピングはとても良いことだと思う。ソフトウェアに対して気を使って専門知識を持った人に書いてほしいと思うのは、俺にとっては素直に良いことだ。今、人々は成熟したソフトウェア製品の衰退をvibecodingのせいにしてるけど、それが公平かどうかは別として(俺はしばしば不公平だと思う)。「AIファースト」企業が質の低いブランドとして見られる可能性もあると思う。すでにゲームでは、AIが使われたかどうかを開示しなければならないことがあって、使われていたら信頼性がかなり損なわれるんだ。

これは主に偶発的な複雑さだね。ウェブが存在する独自のエコシステムの副産物であって、むしろポジティブだよ!バックエンド開発と比べてみて。もし「データベースのインデックスはすごく不便で、作る必要はない」と言ったら、笑い飛ばされるだろうし、それは正当な理由だよ。でも、開発者が「CSSを学ぶ気はない」と言ったら、みんな頷くんだよね。

「新しいプロセスが低品質の仕事を生むことに悲しんでいて、多くの人が気にしていないように見える。」1. こういう議論は、AI以前にはこの種の仕事が質の高い製品に専念する熟練の職人によって行われていたという考えに基づいているように思える。実際に業界で働いていた人なら、そんなことはなかったって分かるはず。中途半端なものやそれ以下のものがたくさんあったよ。2. 「低品質」とはどう定義するかによって、仕事が「低品質」かどうかは分からない。AIは不快な均一性をもたらすかもしれないけど、同時に多くのAIの成果物はかなり使えるものだよ。モデルは、好き嫌いはあれど、大多数のエンドユーザーに「機能する」慣習に基づいて訓練されてるからね。

  1. こういう議論は、AI以前にはこの種の仕事が質の高い製品に専念する熟練の職人によって行われていたという考えに基づいているように思える。実際に業界で働いていた人なら、そんなことはなかったって分かるはず。これは「壁の中のもう一つのレンガ」って感じだね。最低限の要件を満たして成功を宣言するためのプレッシャーはすでにたくさんあった。今は、そのプレッシャーが越えられないものに見える。

AIの前は、この種の仕事のほとんどが質の高い成果物に専念する熟練の職人によって行われていたという考え 一部の人はキャリアの中でそういう時期があったかもしれないけど、AIの前にそれが消えたのには同意するよ。

その通り。jQueryやBootstrapが登場する前のウェブは、めちゃくちゃでコーディングするのが楽しくなかった。低品質のものが当たり前だったのは、あの頃のことだね。

すでに「スキルがなくなった」フロントエンド開発の時期があったよね:Adobe Flash。どんなデザイナーでもそれを開いて、インタラクティブなウェブサイトを作ることができた。CSSやHTMLの知識は必要なかった。少しのJSの知識(ActionScriptとして再ブランド化された)で、完全なインタラクティブ性が得られ、アニメーションもUIで完全に編集できた。もちろん、これにはひどい代償があった:アクセシビリティなし、SEO発見なし、巨大な読み込み時間。でも、同時に最も革新的で芸術的なフロントエンドも生まれた。決して日の目を見るべきではなかったものが、SVG+CSS+HTMLでFlashの現代的な代替品として称賛されたけど、誰も大衆向けの著作ツールを作らなかった。LLMはそれをある意味で修正しているけど、非常に異なるインターフェースでね。

そうだね。そして、フラッシュはジョブズが「フラッシュはバッテリーを食ってるから、次のiPhoneではサポートしない」ってステージに出てくるまで終わらなかった。そうなったらフラッシュは消えていった。どうやら誰も革新的なフロントエンドを必要としなくなったみたいだね ¯_(ツ)_/¯ この手のものにはブレーキがないから、ただ坂を転がり続けて、最終的には止まるまで続くんだ。それは自己増殖するプロセスだよ。

どんなデザイナーでも開いてインタラクティブなウェブサイトを作れる、CSSやHTMLの知識は不要。 ただし、その「どんなデザイナー」もActionScriptについてはそれなりの知識が必要だったから、Flashはただの魔法やキラキラじゃなかったよ。私もその一人だったから知ってる。必要に迫られてActionScriptを学んだけど、実際にはASを扱う前にHTML/CSS/JSを学んでたんだ。

良いニュースは、HTMLがキャンバスで復活するかもしれないってことだね :)

「ちょっとしたJSの知識(ActionScriptとして再ブランド化)」っていうのは、笑っちゃうくらい不正確だよ。Flashでパフォーマンスが良くて耐久性のあるレスポンシブなGUIを作るには、ASの深い理解とその quirks が必要だった。Adobe Airのような自己完結型の実行可能ファイルを出荷する際には、考慮すべきレイヤーがあったし、Flash以外にも他のIDEやコンパイラがあった。フォント、フレーム、ビットマップとベクターグラフィックス、音声や動画の埋め込みの扱い方など、完全なプラットフォームで、ブラウザ戦争と同じくらい複雑な戦場だった。2010年代にAS3駆動のアプリ開発を「ちょっとしたJSの知識」と片付けるのは、実際にその場にいたのか疑わしい。私はその場にいたけど、そんなことは起きてなかったよ。

この記事で言われている「フロントエンドスキル」の重要性が薄れているっていうのは、直感的じゃないエッジケースやブラウザの互換性、歴史的な負担、例外の例外の例外を乗り越えることが大半を占めてる。現代のフロントエンド、つまり「漏れのある抽象の塔」は、ウェブ開発における常識的なメンタルモデルになってるね。ウェブ標準や慣習の奇妙さが爆発的に増してる中で、強制的に置き換えられたものだ。動いているだけで、ちょっと漏れてるのが成果だよ。

それは本当だし、CやUnixの慣習の束も似たようなもので、古いからこそ慣れてる部分もあるよね。

ウェブ開発のための常識的なメンタルモデル。 自分で矛盾してるよ。「地雷原...のエッジケース...」なのか、それとも常識的なモデルなのか、どっちかだよ。両方はない。まだエッジケースの地雷原にいると思うし、すべてを解決したわけじゃない。フロントエンドを構築するための技術がクリーンで予測可能で、歴史的な負担がないわけじゃない。私たちがやったのは、これらの基礎的な間違いや不整合を上塗りしただけで、解決したわけじゃない。ReactはHTMLがUIツールキットとして設計されていなかった事実を解決しないし、Next.jsはJavaScriptが設計ミスだらけで、安全で理にかなった言語になれないことを解決しない。Tailwindも、スタイリングされることを想定していないマークアップにCSSが無造作に導入された問題を解決しない。結局、今のLLMは、上塗りの下にある恐怖の「知識」を持ってるだけで、99%の例が前の層のひび割れを修正するための上塗りに過ぎない時代の例から訓練された統計モデルなんだ。

あなたの無知が見えちゃってるよ。もっと色々あるんだから。次のjsの専門家にインタビューしたけど、他に何もできない人が多すぎた。それはスキルじゃなくて、ただの知識で、今では自由に手に入るものなんだ。

同意だね、TFAは存在しなかった黄金時代の喪失を嘆いてる。俺もその時代にいたけど、IE6専用のシンプルなJSがバグだらけのjQueryに取って代わられ、さらにメンテナンスが難しいAngular SPAに変わり、最終的には巨大なReactコードベースに置き換わったんだ。

でも、その漏れた抽象化がどのタワー、レベル、部屋にあるのかを理解するのは、LLMには見えないかもしれないけど、すごく価値のあるスキルなんだよね。委員会が完璧に設計したわけじゃないからって、全部忘れて本を閉じて機械に計算させるのはダメだと思う。ちなみに、俺は後者をやってるから、彼らが何を間違えてるかは分かるけど、メンテナンスが難しいゴチャゴチャなものを作る気にはならない。フロントエンドのスキルは、エージェントが暴走するたびに本当に役立つんだ。

AIコーディングはプロトタイプを作るのにめっちゃ役立つけど、逆に「これはAIが作ったな」ってすぐにわかる製品になることもある。最近、スタートアップがアプリのデモをしてたんだけど、そのアプリは「AIでコーディングされたUI」って感じだった。彼らは「これ、ちょっとクールだけど、明らかにAIが作ったもので、他の誰でもすぐにAIに作らせられるから、ここで売ろうとしてるものには本当に価値がないよ」って厳しいフィードバックを受けた。冷たいけど、彼らが聞くべき正しいフィードバックだったね。

面白いのは、基本的なデザインシステムやCSSを設定すると、AIが生成したフロントエンドコードがうまくフィットするってこと。でも、ほとんどの人はその基本的な手間すらかけてないんだよね。丸みを帯びた角は、まだまだ定義されてないものに感染しているトレンドのように思える。

私たちはソフトウェア業界にいるんだ。この業界の目的は、非常に繰り返しの多い作業を自動化することだよ。フロントエンドプロジェクトは本当に繰り返しが多い。そして今、AIがそれをやってくれてる。素晴らしいことだし、もっと面白いものを作るための時間がたくさんできる。もはや重要じゃないスキルのデスキル化は、コンピュータが発明されて以来、私たちの業界では常に起こってきたことだよ。次に進んで、新しいスキルを学ぼう。実際にAIを効果的に使うのは、どうやら一部の人には難しいスキルみたいだね。結局、物事は自動で作られない。うまくプロンプトできれば、できるけど、ちゃんとプロンプトできてる?ツールはあなたの指示通りに動いてる?どうやって確認するの?確認した?私はAIにプロンプトするのにかなりの時間を使ってる気がする。確実に上達してるけど、それでもフルタイムの仕事だよ。10年後には、これがソフトウェアを作る非常に非効率的な方法だったと振り返るだろうね。ツールは良くなるし、AIももっと自律的になる。だって、同じことを繰り返しプロンプトして一日過ごすなら、誰かがそれを自動化すべきだよね!

フロントエンドを諦めるのではなく、AIの新しい効率を活用してリソースを解放し、フロントエンドをさらに進めるべきだと思う。バックエンドも同じ。世界は、今よりももっと多くのソフトウェアを必要としてるんだ。

ソフトウェアの目的は、人間の意志を機械が理解できる状態にエンコードすることだよ。ここでの不満は、自動化することでエンコードされるものが本当に望んでいるものじゃなくなるリスクがあるってこと。

デスキル化について話してるけど、そのスキルはデザイン仕様に従ってウェブページを作るという最終目標に本当に関連してるの?パンチカードから高級言語に移行したときの「デスキル化」を心配するべきだったのかな?

最近、これについて考えることがあったんだ。もう10年近くフロントエンド開発はやってないけど、2000年代後半にみんなが手作業でウェブGUIを作るのをやめて、フレームワークを使い始めた頃を覚えてる。まだHTMLやCSS、JS、データベースのクエリを手で書いてる人はバカにされてたよね。求人も突然PHPやHTML、CSS、SQL、JSのスキルを求めなくなって、Ruby on RailsやDjango、Spring、GWT、後にはAngularのスキルが求められるようになった。なんか懐かしい感じがするんだ。実際、深い知識がなくてもすぐにウェブアプリが作れちゃって、数分で動くものができるのは魔法みたいだった。フレームワークの中でドキュメントをざっと読んだりググったりしながらカスタマイズできたけど、結局内部でどう動いてるかは全然わからなくなっちゃう。 vibeコーディングされたウェブアプリと同じように、午後にパッチワークで作られた標準的なフレームワークのウェブアプリは一目でわかるけど、マネージャーにはすごく印象的だったよね。面白いことに、最近の開発者たちが自分の好きなフロンティアモデルについて話すのが、15〜20年前のGUI開発者たちが好きなウェブフレームワークについて話してたのと同じように感じるんだ。ツールの擬人化、さらにはそれと同一視すること、バージョンXでうまくいったことがX.1で悪化したことへのフラストレーション、「今は10倍早く開発できてる」、「手でXYZを書くのに戻る」とかね。

一方で、後からフレームワークを使うのは標準化を試みる良い方法だったと思う。誰も使い方を知らない自家製のGUIなんて、逆に不利だしね。個人的には「大きすぎる」と感じるもの(Nuxt/Next)は拒否してるけど、Vueは好きだな。今はほとんどJavaScriptを排除したいから、サーバーサイドのテンプレートを使ったHTMXやAlpineタイプのソリューションに向かってる。技術は少ない方がいいと思ってる。カスタムコードを一行も追加する前から、ウェブアプリにいろんな無駄があった時期があったからね。

2000年代初頭には、ウェブ開発者たちは手作業で全てをコーディングするのに疲れていて、自動化を求めてたんだよね。フレームワークやCMSを探してた。2004年には、シンプルなアプローチでサイトを作ったんだ。ディレクトリツリーにテキストを置いて、PHPが改行の代わりにタグを追加してHTMLに挿入するって感じ。あの頃の選択肢は、重いCMSしかなかった。で、ひどいPHPフレームワークを2つ経てDjangoにたどり着いたんだ。Djangoみたいなフレームワークは、もっと段階的な移行で、ずっと扱いやすかったよ。もちろん、さらに進めてオブジェクトにバージョン管理を追加すると、すごく難しくなって、動作が保証されなくなることもあったけど、それ以外は、そういう態度は似てると思う。

これって、実は多くの複雑さが理由あってなくなってるんじゃない?ブラウザの互換性の問題は、ブラウザが基準にちゃんと従ってなかったから起きてたことだし、本来は気づかれないはずなんだよね。正直言って、フロントエンド開発で一番良かった変化の一つは、以前は複雑だった問題が、今は簡単に使える解決策として組み込まれてることだと思う。フレックスボックスやグリッドがなかった頃は、レイアウトをコーディングするのが大変だったけど、今はみんなにとって良くなったよね。セレクトメニューをカスタマイズするのも、昔はたくさんのCSSやJavaScriptが必要だったけど、今はブラウザがデフォルトのセレクトボックスを同じようにカスタマイズできる機能を実装してる。要素を自動で高さを調整するのも、昔はJavaScriptが必要だったけど、今はCSSだけでできるようになった。モーダルを作るのも、以前はCSSとJavaScriptを書かなきゃいけなかったけど、今は組み込みの技術でアクセス可能で効率的なバージョンが作れる。で、JavaScriptフレームワークは、実際には以前のツール、例えばWYSIWYGエディタやCMS、jQueryなどが始めたパターンを続けてるだけなんだよね。結局、技術が進化すればするほど、スキルのハードルが下がって、細かいことに気を使う必要がなくなる。ほとんどの人は、特に高度な解決策を必要としてないから、作業を自動化できるシステムが使われるんだよ。これはウェブ開発やソフトウェアエンジニアリングに限った話じゃない。

NextJSのSSRやレイジーローディングを使ってフロントエンドアプリケーションを運営するのが、HTML、JS、CSSだけを書いてた頃と比べて「簡単」だとは思わない。複雑さのレベルとユーザーの期待は全然違うし、スキルのあるエンジニアが1000倍も増えて、グローバルな市場と競争してる。2000年代初頭は競争がほとんどなかったけど、今は市場が求めるスキルと労働者のスキルが緩やかに相関していて、非常に競争が激しいんだ。