【衝撃】「62%が使っているのに、続けたいのは42%だけ」。たった10日で生まれた言語が、なぜか世界を動かしている
【衝撃】「62%が使っているのに、続けたいのは42%だけ」。たった10日で生まれた言語が、なぜか世界を動かしている
世界で最も使われているプログラミング言語と、世界で最も嫌われているプログラミング言語――その両方を同時に体現しているのがJavaScriptだ。開発者コミュニティの定番の雑談は「JavaScriptは欠陥だらけで許せない」という悪口で、ネットには手厳しい皮肉が何千と書き込まれている。なのに求人サイトを開けば、どこもJavaScriptのできる人を募集している。嫌われ者がなぜ30年間も主役の座を降りないのか。その答えは、10日間の夏休み、企業の思惑、そして「絶対に壊してはいけないルール」の中に眠っている。
利用率1位、続投希望はHTML以下
世界中の開発者が集まるQ&AサイトStack Overflowの調査は、この矛盾を数字で突きつける。2011年の調査開始から2026年まで、一度も1位を譲らず「最も使われている言語」であり続け、2026年時点で全開発者の62.0%が使用中。求人数でもトップクラスの需要を維持している。ところが「来年も引き続き使いたいか」という満足度の調査では景色が一変する。続投を望む声はわずか42.0%。Web画面の骨組みを作るHTMLやCSSにすら下回る。参考になるのがRustという言語で、7割から8割が「また使いたい」と答え、9年連続で好きランキング1位だ。好きで選ばれている言語と、仕方なく使われている言語。その差が数字に表れている。
最大の理由は単純で、Webブラウザーの上で直接動く言語が事実上JavaScriptしか存在しないからだ。Rustのような言語は仕組みに惚れた人が自分の意思で選ぶ「自発的選択」の産物だが、JavaScriptは違う。C++やJavaのようなきっちりした言語を好むエンジニアでも、Web画面を動かす仕事があれば触らざるを得ない。 browser独占による強制的な利用が、苦手な人まで毎日付き合わせ、不満の声を増幅させている。
夏休みの宿題より短い「10日間」の出生
この言語の出自は、伝説というより事故に近い。1995年、Netscape社のブレンダン・アイク氏が、たった10日間でプロトタイプを実装したのが誕生の瞬間だ。しかも当初の名称はLiveScript。折しも流行しつつあったJavaに便乗して「JavaScript」に改名された、marketing産物でもある。10日で作られた以上、粗がある。象徴的な例が、null(無効を示す値)の型を調べると「object」と返してしまう挙動だ。これは初期実装が採用した32ビットのタグ付け方式に由来する構造バグで、後から直そうにも、すでに世界中のコードがその挙動を前提に動いていた。
「Webを壊すな」――欠陥が化石になる理由
JavaScriptの悪口として定番の式がいくつかある。空の配列と偽(false)が等号で結べてしまう暗黙の型変換は、もともと開発者に配慮して入れた仕組みが裏目に出た例だ。一方、「0.1+0.2が0.3にならない」は濡れ衣で、これはIEEE754という浮動小数点数の国際規格の挙動であり、JavaScriptに限らずほぼ全ての言語で起きる。誤解と実害が混在するのがこの言語の厄介なところだ。
ではなぜ直さないのか。答えは「Webを壊すな(Don't break the Web)」という原則にある。Web上の膨大なサイトが現在の挙動に依存している以上、互換性を壊す修正は原則できない。2000年代には、言語を大胆に作り替えるES4という大型計画も立ったが、8年の議論の末に白紙化。代わりに小刻みな追加を重ねる路線が選ばれた。関数名ひとつとっても、当初「flatten」だった追加予定の関数が、既存のWebサイトと衝突して「flat」に改名に追い込まれた「smooshgate」事件は、互換性の呪いを象徴する。
挑戦者たちの最期:Flash、Dart、そしてWebAssembly
JavaScriptの座を狙った挑戦者は何組もいる。Flashはリッチな映像表現でWebを席巻したが、バッテリーを激しく消費する欠点が付きまとい、2010年にAppleのスティーブ・ジョブズ氏が「iPhoneには絶対に載せない」と宣言してモバイルの波を逃した。2020年末に消滅している。Googleは2011年、Dartという新言語を自社Chromeブラウザーに直接搭載する荒技に出たが、AppleやMozillaから「Google息のかかった言語を入れればWebが分断される」と反発を受け、ブラウザー内に2つの言語処理系を同居させるとメモリを奪い合って重くなる問題も発覚。2015年に搭載を諦め、現在はスマホアプリ開発のFlutterの中で別の道を歩んでいる。天下のGoogleですら、他社の合意なしには標準を変えられなかったのだ。
そして2017年、全ブラウザー企業の合意で生まれたWebAssemblyは、発想を変えた。JavaScriptを倒す武器ではなく、苦手な部分を補い合う共存パートナーとして設計されたのだ。重い3Dゲームや画像編集の計算をWebAssemblyが担い、画面の制御はJavaScriptに任せる。排除も分断も起きなかった。最後の大型新人は、頼もしい相棒になった。
ブラウザの外へ:Atwoodの法則とV8の衝撃
地位を盤石にしたJavaScriptは、ブラウザという枠を飛び出して領土を拡大していく。きっかけは2008年、GoogleがChromeとともに公開した高速エンジン「V8」だ。コードを1行ずつ読みながら動かす旧方式から一歩進み、よく使う部分をその場で機械語に翻訳するJITコンパイルで、実行速度を数十倍に跳ね上げた。翌2009年、ライアン・ダール氏がこのV8をブラウザの外で動かせるようにしたのがNode.jsだ。これでJavaScriptはサーバーの言語になり、Electronを介してVSCodeやSlack、Discordといったデスクトップアプリの心臓になり、React Nativeでスマホアプリにも入り込んだ。Stack Overflow共同創業者ジェフ・アトウッド氏が2007年に残した「JavaScriptで書けるアプリケーションは、最終的にJavaScriptで書かれる」という予言は、Atwoodの法則として現実になっていく。
砂上の楼閣と、AIが直した「嫌い」
もっとも、その領土は脆さも抱える。2016年、たった11行の削除用パッケージが開発者の怒りで削除され、世界中のビルドが連鎖的に止まったleft-pad事件。2018年には月間150万回ダウンロードされた人気パッケージが乗っ取られ、仮想通貨の情報を抜き取る malwareに化けた。支えているのが無名の個人開発者の無償労働だとすれば、世界規模の屋台骨が砂上の楼閣なのではないか――そう危ぶまれた時期もある。

この脆さを引き受けたのがTypeScriptだ。型(値の設計図)を追加しつつ、実行時には型を消してJavaScriptに変換する「型消去」という設計で、互換性を壊さず安全帯だけを足した。効果は絶大で、2025年のGitHubの調査ではTypeScriptの利用者が前年比66%増となり、Pythonを抜いて世界1位に。さらにAI時代が追い風になった。AIがコードを書く際、JavaScriptは幻覚(誤った構文の出力)を起こしがちだが、TypeScriptの型情報がその誤りを自動検出・修正するループとして機能する。しかもAIが学習できるTypeScriptの型付きデータは、Pythonの約10倍あるとされる。嫌われ者は今、AIとの相性という思わぬ形で評価を塗り替えつつある。
ネットの反応
私もJavaScriptは大嫌いで、フロントのコーディングには絶対に関わらないように生きてきたのですが、最近はAIによって自分で書かなくてもフロントを作れるようになったので、幸せな時代が来たと喜んでいます
最近はやや避けては通れないものになりつつあって、食わず嫌いが減ったのかJavaScript嫌いな人をほとんど見ない
まあ、JavaScriptだけはダメだ。Rubyにでもしてほしいもんだ。つなぎとしては残るかもな。昨今のサーバーで使うとか正気とは思えないよ
すでに中間言語に変換されて実行されているんだから、中間言語への変換エンジンごと新しいWeb言語を作った方が良いかも。既存のJavaScriptを壊さずに新しい世界に行ける。ただ、ブラウザのエンジンを作っているところがやらないと難しいかなぁ
AIの所感
JavaScriptの30年は、「完璧より互換」「革命より進化」が世界を回してきた歴史だ。10日で生まれた言語が直せない欠陥を抱えたまま生き延びたのは、エンジニアの忍耐強さではなく、Webが「過去のすべてのページを生かし続ける」という前代未聞の約束をして運営されてきたからだ。ES4の白紙化も、smooshgateの改名も、WebAssemblyの共存設計も、すべてはその約束の枝葉に見える。そして興味深いのは、嫌われ度を押し下げているのが皮肉にもAIだという点だ。幻覚を起こしやすい言語ほど、型という手綱でAIと噛み合う――この逆転は、言語の善悪より「誰と組むか」が生存を左右するという教訓に思える。次にJavaScriptを脅かす存在が現れるとしても、それはまた「壊さない誰か」だろう。10日で生まれた言語が30年生きているのだから、次の主役が決まるまでにかかる時間も、たぶん我々の予想より短い。