【Programmer Legends #11】 Brendan Eich:10日間でWebの血液を作った男と「壊せない」言語の運命
1. 序章:10日間で作られたWebの血液
現在、地球上で最も広範囲に使われているプログラミング言語は何かと問われれば、誰もが「JavaScript」の名を挙げるでしょう。
JavaScript - Wikipedia
JavaScript (JS)[a] is a programming language and core technology of the Web, alongside HTML and CSS. Created by Brendan Eich in 1995, it is maintained by Ecma International's TC39 technical committee, with related Web APIs maintained by W3C and WHATWG.
en.wikipedia.orgブラウザ上の動的なUIから、Node.jsによるサーバーサイド、React Nativeによるスマホアプリ、そしてエッジコンピューティングに至るまで、現代のWebインフラはJavaScriptなしでは1秒足りとも成り立ちません。
しかし、このWebの「血液」とも言える言語の原型が、わずか10日間で書き上げられたという事実を知る人は多くありません。
その生みの親が、Brendan Eich(ブレンダン・アイク)です。
Brendan Eich - Wikipedia
Brendan Eich is an American computer programmer and technology executive. He created the JavaScript programming language and co-founded the Mozilla project and Brave Software.
en.wikipedia.org彼はのちにMozillaプロジェクトを立ち上げてFirefoxでInternet Explorerの一極集中に風穴を開け、現在はプライバシー指向のBraveブラウザを率いています。 「完璧な設計」ではなく「圧倒的なスピードと実用性」から生まれ、膨大な歴史的経緯と互換性の呪縛を背負いながら世界を支配したJavaScript。その中心にいた男の足跡を紐解きます。
Firefox - Wikipedia
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and anticipated web standards.
en.wikipedia.orgBrave (web browser) - Wikipedia
Brave is a free and open-source web browser which was first released in 2016. It is developed by US-based Brave Software, Inc.
en.wikipedia.org2. Netscapeの狂気と1995年5月の10日間
「Schemeをブラウザに入れろ」から始まった
1995年、Webブラウザ市場を制覇しつつあったNetscape Communications社は、静的なHTML文書に「動き」と「インテリジェンス」を与えるクライアントサイド・スクリプト言語の搭載を模索していました。
Netscape - Wikipedia
Netscape Communications Corporation (originally Mosaic Communications Corporation) was an American independent computer services company with headquarters in Mountain View, California, and then Dulles, Virginia.
en.wikipedia.org当初、同社に入社したBrendan Eichに与えられたミッションは「Lisp方言であるSchemeをNetscape Navigatorに組み込むこと」でした。
しかし、当時の時流はJava(Sun Microsystems)の熱狂の中にありました。 Netscapeの経営陣は「プロのプログラマーはJavaを使い、Webデザイナーやアマチュアでも手軽に扱える軽い補完言語が必要だ」と判断します。 そしてEichに下された命令は、「構文はJavaに似せろ。ただし、手軽で動的な言語にしろ。そしてNavigator 2.0のリリースに間に合わせろ」という無茶ぶりでした。
The History of JavaScript - Medium
From its humble beginnings as a 10-day project to becoming a foundational pillar of the internet, JavaScript has undergone a remarkable journey.
piyush-dubey.medium.com10日間の狂乱:Mochaの誕生
1995年5月、Eichは不眠不休でキーボードを叩き、わずか10日間でコードネーム「Mocha」と呼ばれるプロトタイプを書き上げました。
時間が極限まで制限される中、彼は以下の要素を短期間でキメラのように融合させました:
- C言語風の構文(Javaへの見かけ上の配慮)
- Scheme譲りの第一級関数(First-class functions)とクロージャ
- Self言語譲りのプロトタイプベース・オブジェクト指向
- PerlやAwk風の正規表現や暗黙の型変換
この「10日間で生まれたプロトタイプ」こそが、JavaScriptの直系の先祖です。
Mocha(1995年5月)
└─ LiveScript(1995年9月)
└─ JavaScript(1995年12月 / Sunとの提携・便乗マーケティング)
「JavaScript」という名称は、当時のJavaブームに便乗するための完全なマーケティング的命名であり、JavaとJavaScriptは技術的には全く別物です。Eich本人は後年、「Javaの影に隠れた便乗(Piggyback)だった」と語っています。
3. 「おもちゃの言語」から「世界標準」への険しい道
暗黒時代:ブラクラ、Flash、そして「おもちゃ」のレッテル
登場初期のJavaScriptは、決して評価が高くありませんでした。 ボタンの文字を点滅させたり、マウスポインタを追いかける文字を表示したりといった「お騒がせツール」や、ブラウザクラッシャー(ブラクラ)に使われることが多く、多くの開発者から「本物のプログラマーが使うものではないおもちゃ」と見下されていました。
さらに、Microsoftが互換言語「JScript」をInternet Explorer 3.0に搭載したことで互換性の泥沼化が始まり、仕様を標準化するために1997年、ECMAScript(ECMA-262)が策定されました。
JavaScriptの歴史 - Zenn
1995年の誕生からAjax革命、V8エンジン、Node.js、そして現代に至るJavaScriptの波乱万丈な歴史を分かりやすく解説。
zenn.dev2005年のAjax革命とGoogle Mapsの衝撃
評価が一変したのは2005年です。
GoogleがJavaScriptのXMLHttpRequestを用いたGoogle Mapsを発表しました。
ページ全体をリロードすることなく、マウスのドラッグに合わせて地図が滑らかにシームレスに動く体験は、世界に衝撃を与えました。
「JavaScriptで、デスクトップアプリ並みのリッチなWebアプリが作れる」
ここからJavaScriptは「おもちゃ」から「Webアプリ開発の主役」へと一気に躍り出ます。 その後、2008年のGoogle Chrome登場によるV8エンジン(JITコンパイル)の爆速化、2009年のNode.jsによるサーバーサイド進出を経て、JavaScriptはあらゆる領域を侵食していきました。
4. Mozillaと「オープンWeb」を守る闘い
Brendan Eichの功績はJavaScriptの作成にとどまりません。彼はオープンWebの守護者でもありました。
Netscapeの敗北とMozillaの立ち上げ
1990年代後半、MicrosoftのInternet Explorerによる抱き合わせ戦略の前に、NetscapeはWebブラウザ戦争で敗北を喫します。 1998年、EichらはNetscapeのコードベースをオープンソース化するプロジェクト「Mozilla.org」を立ち上げました。
AOLによるNetscape買収と部門解体を経て、2003年にEichはMozilla Foundationの設立に尽力。 彼が開発を主導したJavaScriptエンジン「SpiderMonkey」を核に、オープンソースブラウザMozilla Firefoxが誕生します。
Netscape Navigator
└─ Mozilla Project (1998)
└─ Mozilla Foundation (2003) ── Firefoxの爆発的普及
Firefoxは、当時IEが握っていた90%超の市場シェアを削り取り、Web標準を特定企業の独占から「オープンな場」へと取り戻す原動力となりました。
Brendan Eich - Computer History Museum
Profile of Brendan Eich, creator of JavaScript and co-founder of Mozilla.
computerhistory.org5. Brave Browser:プライバシーとWeb経済圏の再構築
Mozillaを離れたEichが2015年に設立したのが、Brave Softwareです。
彼が直面したのは、巨大IT企業(Surveillance Capitalism / 監視資本主義)によってユーザーのプライバシーが侵害され、広告で埋め尽くされた現代Webの歪みでした。
Braveブラウザは、デフォルトでトラッカーや害のある広告を遮断し、高速なブラウジングを提供するだけでなく、暗号資産BAT(Basic Attention Token)を用いた新しいWebエコシステムを提案しました。 「ユーザーのプライバシーを守りつつ、クリエイターに適正な対価を支払う」というBraveの試みは、EichがWebの黎明期から掲げ続ける「Webのオープン性と自立性の守護」の延長線上にあります。
6. 設計思想とレガシー:“Don’t Break the Web”
10日間で作った代償と「後方互換の鉄則」
JavaScriptには、10日間で作られたがゆえの奇妙な仕様が数多く存在します:
typeof null === 'object'(初期実装の型タグ処理のバグに由来)018 == 010がfalseになる曖昧な暗黙の型変換- 変数のホイスティング(Hoisting)やグローバルスコープの汚染しやすさ
しかし、EichとECMAScript委員会(TC39)が徹底して守り抜いた最も重要な哲学があります。 それが「Don’t break the Web(Webを壊すな)」という絶対的後方互換性です。
1996年に書かれたJavaScriptコードは、2026年現在の最新のChromeやSafariでも原則としてそのまま動作します。
言語を破壊的に再設計(Python 2から3への変更のような)することを拒み、「新しい機能を上書き・拡張する(ES6/ES2015でのlet/const、class、Promise、async/awaitなど)」ことで進化し続けました。
Eich’s Law(アイクの法則)
Web開発の世界には、Eichの名を冠した格言が存在します。
「Webアプリケーションに記述できるものは、最終的にJavaScriptで記述されるようになる。」 (Anything that can be written in JavaScript, will eventually be written in JavaScript.) — Jeff Atwood(Atwoodの法則として知られるが、根底はEichの思想に由来)
かつては「Webブラウザ上で動く簡単なスクリプト」だった言語は、いまやアセンブリ言語(WebAssembly)のターゲットであり、機械学習(TensorFlow.js)からOS(Firefox OS)まで動かす万能のプラットフォームとなりました。
7. 結び:世界で最も成功した「応急処置」
Brendan Eichの物語は、ソフトウェア工学における最大の皮肉であり、同時に最高のロマンです。
【#09 Tim Paterson】がMS-DOSを数か月で作ってPC文化の土台を作ったように、Brendan Eichもまた、わずか10日間で「応急処置」としてJavaScriptを作り上げました[cite: 9]。
10日間の突貫工事で作られた言語は、完璧な美しさを持っていたわけではありません。 しかし、「環境を選ばず、ブラウザさえあればどこでも動き、参入障壁が低く、進化を止めなかった」ことによって、他のあらゆる洗練された言語を駆逐し、世界を覆い尽くしました。
「JavaScriptは完璧ではない。しかし、常にそこにあった。」
Eichが駆け抜けた10日間がなければ、私たちが知るハイパーリンクで結ばれたインタラクティブなWeb世界は存在しなかったか、あるいは特定の巨大企業の独自技術(FlashやActiveXなど)に支配されていたでしょう。
彼が植えた10日間の苗木は、数億人の開発者の手を経て巨木となり、今この瞬間も世界中で何十億もの画面を駆動し続けています。
出典・参考資料:
- Computer History Museum: Brendan Eich Oral History
- ECMA International: ECMAScript Language Specification
- “The History of JavaScript” - Medium / Zenn
- Wikipedia: Brendan Eich / JavaScript / Mozilla / Brave