JavaScript の生い立ちを探る

河本孝之(Takayuki Kawamoto)

Contact: https://plus.google.com/112326853631114362590/about

Last modified: 2013-08-20 11:52
First appeared: 2008-11-11 08:33:00

JavaScript を学ぶにあたって殆どの人が入門書や解説サイトで目にするのは、「JavaScript は Java とは無関係です」という、苦言とも弁解ともつかない表現でしょう。もちろん、JavaScript という名称がこのまま存続している限り、「JavaScript」という綴りを眺める初心者(しかも「Java というプログラム言語がある」という程度の知識を持ってしまっている初心者)が、JavaScript と Java について、綴りの一部が一致しているという事実よりも多くのことを想像してしまうのは致し方がありません。したがって、JavaScript や Java の入門書には、いつまでも同じ注釈を書き続けなくてはならないのです。しかし、JavaScript と Java が正確に言ってどのような関係にあるかを、両者の動作仕様(クライアントサイドとサーバサイド)という違いから言い立てるだけでは、「じゃあ、なんでこんな紛らわしい名前がついているのか」という質問に答えることはできません。

JavaScript についてよくある紹介

JavaScript の入門書や解説サイトには、よく下記の内容と大同小異の注釈が書かれています。

JavaScript をめぐる神話のなかで一番多いのは、Sun Microsystems 社が開発した Java の「簡略版」だという話です。確かに、Java と JavaScript は、構文が似ており、Web ブラウザで「実行可能なコンテンツ」を提供できます。しかし、この2つの点を除くと、両者はまったく関係ありません。名前が似ているのは商売上の対策なのです。もともとは LiveScript と呼ばれていたのですが、最終段階で JavaScript に名称変更されたのです。

『JavaScript 第3版』(David Flanagan/著, 村上列/監訳, 安藤進・垰井正雄/訳, オライリー・ジャパン, 2000), p.2.

上記は、JavaScript の入門書として定評がある『JavaScript 第3版』(2007年に、最新の第5版が出ています)の一節です。日本の著者が書いた入門書にも、同じような文言がどこかに見つかるでしょう。また、解説サイトの文章であっても事情は同じであって、『ウィキペディア』にも上記とよく似た表現が見られます。

ネットスケープコミュニケーションズのBrendan Eichによって開発され、Netscape Navigator 2.0 で実装された。開発当初は「LiveScript」と呼ばれていたが、1995年にSun Microsystems社の開発したプログラミング言語「Java」が当時大きな注目を浴びており、これに便乗したネットスケープ社のマーケティング的な思惑が働き「JavaScript」という名前に変更されたといわれている。

JavaScript」, 『ウィキペディア 日本語版』(2007年11月4日時点での内容を参照したので、クリックしても同じ表現が残っているとは限りません)

いまご紹介したような注釈は JavaScript の生い立ちに関するスタンダードな説明だと思うのですが、JavaScript が初めて世の中に登場した当時の経緯を知っている人が書いているにしても、第一次資料とも言うべき出典となると数は限られています。なぜなら、JavaScript を世に送り出した当時のネットスケープ社は紛れもなく一つの営利企業だったので、新しい機能の企画資料やプレゼンテーション対策の議事録など、表に出せるわけもなかったからです。JavaScript の生い立ちを探るために、わたしたちがつかめる材料としては、せいぜい当時の IR 資料とかプレスリリースのページ、それから当時のニューズサイトの記事くらいのものでしょう。あとは、当時の技術者にインタビューでもするしかありません。そこで、まずは当時の技術者、しかも JavaScript を世に送り出した人であるブレンダン・アイクという人物を調べてみましょう。

JavaScript の産みの親

Brendan Eich, Mozilla Foundation (2014)

ブレンダン・アイク(Brendan Eich)は1961年にカリフォルニア州のサニーベールで生まれました。そうして『Wikipedia』(英語版の『ウィキペディア』)によると、ブレンダンはイリノイ大学に進み、イリノイ大学で幾つかある分校の中でもアーバナ-シャンペーン校に通いました。この分校にはネットスケープ・コミュニケーションズ社を設立したマーク・アンドリーセンも在籍していたことがあるそうです。ここでブレンダンは1986年に修士号を取得しています(本人がプライベートなジョークサイトで書いていた説明によると、彼は牛転かし(cow tipping)で学位をもらったとのことです)。卒業してからは、まずシリコン・グラフィックス社に入って「退屈な日々を過ごし」、それからマイクロ・ユナイティ社を経て、1995年の4月にネットスケープ・コミュニケーションズ社へ入社しました。その当時のネットスケープ社はブラウザやサーバを販売する営利企業であり、さきに述べたとおり社内の開発プロジェクトや営業戦略にかかわる当時の資料は、意図して部外者向けに書かれた IR 情報を除けば殆どネット上に公開されていません。したがって当時の様子は、関係者の回想などから推し量るしかアプローチのしようがないとも言えます。そこで、ブレンダンが当時を回想している資料を見てみましょう(もちろん、特に公の場で述べる回想は、全てを包み隠さずに述べているとは限りませんし、包み隠さず述べていても記憶の曖昧さや勘違いのせいで、かならずしも正確な説明ではないかもしれません。どこを差し引いたり無視すべきなのかは、一つの資料や発言だけで判断できることではないので、まずは当事者の発言だからといって鵜呑みにしないという点だけ気を付けましょう)。

JavaScript は、HTML を記述する人たちがドキュメントへ直にスクリプトを書けるようにしたいとの要望から生まれました。これはいまではごく当たり前のことかもしれませんが、1995 年の春、その当時は新しいアイディアだったのです。そして、(HTML はドキュメントの静的な構造だけを記述すべきだという)型にはまった能書きや、(ウェブページの役割を押し広げて活き活きとさせる唯一の方法は Java アプレットだという)でたらめに対して、少なからず抵抗したいと思っていました。

Brendan Eich, “Forward” in Danny Goodman, JavaScript Bible. 4th edn., Hungry Minds (2001).

また、最近も開発当時の様子に言及していて、次のようにも語っています。

当時は「HTMLソースに書けるスクリプト言語」が要求されていました。同時に、サン・マイクロシステムズ社とのあいだで交わされようとしていた「Java ライセンス」を驚異に感じていたのです。そして、入社したての私は、そのようなスクリプト言語の実装が可能だとデモンストレーションする必要に迫られました。 5 月になって、私は JavaScript の原型を1週間もかけずになんとか作り上げて、社内で公開できたのです! そして最初のうちは設計上のミスなど放置しておき、年内の残り時間は、この新しい言語をブラウザへ実装することだけに費やしたのです。

Brendan Eich, “JavaScript at Ten Years” (2005).

いま紹介した二つの文章でブレンダンが語っている内容を理解するには、まず当時のネットスケープ社がサン社から受けた「Java ライセンス」(1995年5月23日発表)を知る必要があるでしょう。このライセンスによって、Netscape Navigator に Java アプレットの実行環境を実装できるようになったのでした。そもそも、Java というプラットフォームそのものが Java ライセンスの発表と同じ月に初めて発表されており、しかも HotJava というブラウザを実行するための環境として紹介され、アプレットがブラウザ内で動作するようになっていたのですから、言ってみればブラウザのベンダーとして両社は競合していたことになります。当然、ブレンダン(あるいは当時のネットスケープ社)は Java アプレットに対抗意識をもっていたのでしょう。この状況を、hujikojp さんは「社内で Javaとのコンペ状態だった」と説明されており、まさに Java アプレットの実行環境だけでなく、自社オリジナルのスクリプト言語が求められていたという、当時の状況を理解することが JavaScript の生い立ちを探るための鍵になると言えるでしょう。ここで少し余談をはさむと、この当時、ブラウザにスクリプト言語の実行環境を組み合わせた例は、Java アプレットと JavaScript (開発当初は Mocha と呼ばれていた)だけではありませんでした。もう一つ、ノンバス(Nombas)という会社が 1995 年の 11 月にスクリプト言語を使ったデモページを Espresso Pages という名称で公開し(コーヒーの話ばかりで胃がもたれそうです)、その実行環境では Nombas 社が開発した Cmm という言語で動的なコンテンツを記述できました。やがてこの実装は ScriptEase という ECMAScript 互換の実行環境へと発展してゆきました。ニコラス・ザカス(Nicholas C. Zakas)によると、Nombas が Cmm をスクリプト言語として実装したのは 1992 年頃のことなので、クライアント側でスクリプト言語を実行する環境としては最も早い時期に入ると言ってよいでしょう。ブレンダンが Nombas の製品を参考にしていたかどうかはまったく分かりません。彼自身が語っているところでは、HyperCard に感化されたという発言があるだけです。したがって、Cmm の実行環境を「ブラウザ用のスクリプト言語としては早い時期のものだった」と言うことはできても、JavaScript の前身だったと説明したり、Cmm や ScriptEase が「ブラウザに実装された実行環境」であったかのような誤解を招く説明は不適当です。しかも、ノンバス社の社長だったブレント・ヌーダ(Brent Nooda)は、ブラウザそのものに実行環境を埋め込む手法には反対しており、HTML に追加するスクリプト言語は、あくまでも CGI を通したヘルパー的な実行環境で動作させる方がよいと主張していたのですから、なおさらでしょう。

JavaScript は誰のために

話は 1995 年の4月に戻ります。ブレンダンは Netscape Navigator に Java とは別の実行環境を組み込もうと、オリジナルの言語を設計し始めました。「結局、アイクはページの要素として埋め込めるような、ラフなスクリプト言語を開発しようと決めたのであった」(Steve Champeon, “JavaScript: How Did We Get Here?“)。当時はそのような言語を、プログラミングだけに専念できるとは限らないネットワーク管理者やデザイナーたちが望んでいたらしいのです。しかし端から見れば、ウェブページのコンテンツを動的に表示するための実行環境を Java アプレットとは異なる仕方で新たに開発し追加するというのは、いたずらにものごとをややこしくしているだけに見えたのかもしれません。そこで・・・

ネットスケープの経営陣はやきもきしてこう言いました。「なんで二つも言語を実装するんだ?」そこで私はこう答えたのです。「使う人の違いですよ。Java は高価なコンポーネントを特別に開発するための言語ですが、”Mocha” は一般大衆の市場に向けたものでして、ウェブデザイナーが使う言語なのです。」

Brendan Eich, “JavaScript at Ten Years” (2005).

そうして、この新しい言語は Java に似てはいるがスクリプティング言語でなければならないという点で、我々は一致したのでした。

Marc Andreessen, “INNOVATORS OF THE NET: BRENDAN EICH AND JAVASCRIPT” (1998).

したがって、Netscape Navigator に実装されたスクリプト言語の実行環境として比較すると、JavaScript が Java のライト・バージョンであるという俗説には、開発がスタートした頃の状況説明として、それなりに妥当な理由があると言えなくもありません。実際、Java と Mocha は、Netscape Navigator がサポートする二つの実行環境としてプレゼンテーションされ、あたかも違いはターゲットだけであるかのように思われたのですから。こうして Mocha の実装は続けられ、同年の12月4日にネットスケープ社とサン社の共同発表で「JavaScript」の名称が公式に使われることとなりました。その公式発表を見ると、

Java は新しいオブジェクトやアプレットを開発するためにプログラマが使う言語だが、JavaScript は HTML 制作者やエンタープライズ・アプリケーションの開発者が、サーバやクライアント上で動作するオブジェクトの挙動を、ダイナミックに記述できるように設計されている。JavaScript を使えば、Visual Basic のように、プログラミングの経験が殆どないユーザでも複雑なアプリケーションを構築できるようになるだろう。

Netscape Communications Corporation, “NETSCAPE AND SUN ANNOUNCE JAVASCRIPT, THE OPEN, CROSS-PLATFORM OBJECT SCRIPTING LANGUAGE FOR ENTERPRISE NETWORKS AND THE INTERNET: 28 INDUSTRY-LEADING COMPANIES TO ENDORSE JAVASCRIPT AS A COMPLEMENT TO JAVA FOR EASY ONLINE APPLICATION DEVELOPMENT“, December 4, 1995.

Netscape Navigator 2.02

と述べられており、ネットスケープ社もサン社も JavaScript を Java の簡易版であるかのように紹介しています。しかも、「Java-」という言葉がわざわざ付けられているのですから、現在でも初心者が JavaScript を「Java スクリプト」と書いたり「ジャバ」と呼んでしまうのは、仕方のないことです。実際、スティーブ・チャンピオン(Steve Champeon)によると、マーケティング上の「誤り」であったこの命名によって、メーリングリストや Usenet 上で多くのウェブデザイナーたちが Java と JavaScript を取り違えるという混乱が後を絶たなかったと言います。また現在でも、カテゴリーごとの専門スタッフがいる大型書店ですら、Java のコーナーに JavaScript の本が混じっているのはありふれた光景です。

Mocha から LiveScript そして JavaScript へ

では、上記の公式発表に至る経緯をもう少し詳しく辿りなおしてみましょう。”Mocha” と呼ばれていたスクリプト言語は、いつから “JavaScript” になったのでしょうか。たいていの職業プログラマなら知っているように、それは上記発表の直前になってマーケティング上の理由から改名されたということになっています。ところが、これまで見てきたように、プロジェクトの立ち上げ当初から Mocha は Java とは別のターゲット層に向けて開発されてきた「ライトな」言語です。すると、社内プレゼンにおいても「何に対してライトなのか」という点で、Java との比較に最初から晒されていたことが分かります。ひとくちに「ライト(ウェイト)な言語」と言っても、それがスクリプト言語だという実装についての分類という意味で理解されるだけではなく、当時のネットスケープ社では Java と比較して「ライトユーザのための言語」という意味合いもあったのではないでしょうか。ネットスケープ社の中で JavaScript と呼ばれる運命にあった言語がどのように扱われていたかを振り返ってみると、一方では Java に似た言語として紹介し注目を浴びたいという思惑と、他方では Java アプレットだけではない他のスタイルを提案したいという思惑が衝突していたのではないかと想像できます。すると、お披露目の直前になって Java から “Java” という言葉だけ借用して箔を付けたと言わんばかりの非難は、上記のような状況を理解していなければ、「Java と JavaScript は違う!」と叫ぶだけの言葉狩りに終わってしまうでしょう。そこで、ブレンダンのプロジェクトが “JavaScript” と改名される直前に注目してみましょう。ブレンダンがプロトタイプの言語を “Mocha” と呼んでいたのは既に説明しましたが、”Mocha” からいきなり “JavaScript” へと改名されたわけではありません。JavaScript を紹介している本にしばしば書かれているように、まず “Mocha” は “LiveScript” と改名され、そして “JavaScript” へと改名されました。では、いつ “Mocha” から “LiveScript” になったのでしょうか。まず、ブレンダン自身が語っているところへ、再び戻ってみましょう。

私たちが開発していたスクリプト言語は、1995年の9月に公開された Netscape Navigator 2.0 のベータ版に実装されたとき、LiveScript という名前が与えられました。しかし、サン社と共同で1995年12月4日に公式発表されるにあたり、この言語は JavaScript と再び改名されたのです。

Marc Andressen, “INNOVATORS OF THE NET: BRENDAN EICH AND JAVASCRIPT“, June 24, 1998.

そしてスティーブ・チャンピオンによれば、Netscape Navigator 2.0 のベータ版を開発していた終盤になって “LiveScript” という呼称は “JavaScript” へと変更されたのでした。”Mocha” からの流れを追ってみると、

となり、”LiveScript” の名称は約3ヶ月しか使われなかったことが分かります。すると、この3ヶ月間に何があったのかが問題となります。プログラム言語としての JavaScript の設計思想は、プロトタイプの Mocha からリリース版 JavaScript に至るまで殆ど変更されていませんでした(LiveScript と Netscape Navigator 2.0 のリリース版とではっきり違っているのは、JavaScript とは異なり LiveScript が大文字と小文字を区別しない(case-insensitive)という点くらいだったようです)。そして、さきほども述べたようにブランドンたち Netscape Navigator 開発スタッフは、設計上の小さな問題点をそのままにしておいて、スクリプトの実行エンジンをブラウザへ実装する方に専念していたのでした。したがって、”LiveScript” という呼称が1995年の9月に与えられたとき、そのままの呼称で正式リリースするつもりだったのか、それとも正式リリースするにあたって “JavaScript” という呼称を与えるつもりだったのかを突き止めておく必要があるでしょう。つまり、”Live-” という接頭語がダミー(もしかすると “Java-” を付けられないかもしれなかった)やフェイク(”Java-” を付けられたが、9月の時点では公表するつもりがなかった)だったのではないかと思われるからです。この点について分かっている事実から述べると、まず “javascript” という商標を登録しているのはネットスケープ社ではなく、サン社です。申請日(filing date)は1995年12月1日となっており、正式に登録されたのは2000年の12月1日です。そして “livescript” という名称についてネットスケープ社は商標登録の申請をしておらず、マイクロソフト社が1997年4月23日に申請して、翌年には申請を取り消しています。通常、一般名詞でもない限り、プロダクトの名称を公表しておいて商標を登録申請しないのは企業として不自然と思えるので、本当に “LiveScript” をそのまま使う気であれば、ベータ版を公開した1995年の9月に申請していてもよかったのではないでしょうか。また、ネットスケープ社には LiveConnect や LiveWire など、”Live-” を付けたプロダクトがありますから、その一環で “LiveScript” とつけたのではないかと考えるのが自然です。

この名称は Netscape のプロダクトライン(Live Wire, Payment Live, Live Audio etc.)に沿うものでした。LiveScript は文法や制御構文という点で Java の表面的なところを真似たのです。ブレンダン・アイクによると、「ネットスケープとサンは、スクリプト言語にも Java ブームを起こそうとしていたのです」

Die Geschichte von Java und JavaScript“, (2005).

ちなみに、サーバサイドの JavaScript エンジンである LiveWire は翌年に公開されているので、ネットスケープ社が Mocha を LiveScript へと改名した当時は LiveWire はありません(クライアントサイドの実装すら十分に完了していなかったのですから)。次に、1995 年の顛末をブレンダン自身が他のインタビュー記事で語っているところを見ると、次のようになります。

インタビュアー:あなたはしばしば 1995 年に Netscape (Navigator) へ LiveScript を実装した発明者として言及されますが、そのプロジェクトを一人で進めていたのですか?
ブレンダン:わたしだけでした。95年5月までのあいだに、私は Mocha という言語の原型を一週間でつくりあげました。Mocha は、親しみやすい Java だったのです。その基本コンセプトは、HTML に埋め込むスクリプト言語をつくるということであって、従来のように開発者がサーバを通して出力するのではなく、ページの中へ直にプログラムを統合できるようにし、イベントで発火する動きやフォームの検査などを可能にすることでした。この言語の原型には10日だけかけて、その年の残りはすべて Navigator へ実装することに費やしたのです。名称は後からサン社との合意に鑑みて影響を受けました。その当時、ネットスケープ社はウェブでの Java の成功に便乗したがっていたのです。

Interview de Brendan Eich (Mozilla Corp.)“, JDN developpeurs, (2007).

また一説によれば、”Mocha” という名称は競合相手の “Java” を意識しすぎているので、もう少しコーヒーとは無関係の名称にした方がよいとの判断があったにもかかわらず、逆に “LiveScript” ではあまりにも “Java” との結びつきが薄いので、結局は “JavaScript” になったのだという解釈もあるようです(James Payne, “Javascript: the Beginning“)。1995年9月18日にネットスケープ社が公開したニューズリリースを読むと、Netscape Navigator 2.0 のアップグレード内容について “LiveScript” という呼称は全く出てきません。TidBITS日本語版 TidBITS)など、LiveScript が初めてリリースされた9月前後のドキュメントには見受けられませんが、Netscape Navigator 2.0 が正式にリリースされた12月以降になると、”JavaScript” 発表の直前に出た Sun World の記事から、直後に出た Sun World の記事に見られるとおり “LiveScript” という呼称はそのまま文章に使われています。但しネットスケープ社が提供していた Navigator 2.0 の技術ドキュメントは全て “JavaScript” という呼称を使っているので、ネットスケープ社が公式に “LiveScript” という名称を使った文書はそう多くないのです。

そして12月4日に、ネットスケープ社とサン社は技術提携を発表しました。両社はウェブページを記述する HTML に埋め込めるように設計された、新しいスクリプト言語を開発するために共同で作業するというのです。幸運なことに、ネットスケープ社は既にそうしたスクリプト言語を手にしていました。そこでネットスケープ社は、その言語を今後は JavaScript と呼ぶことにしたのです。すると一夜にして JavaScript への注目度は急上昇しました。この言語を JavaScript と呼ぶことにマーケティング的な利点があったことははっきりしていました。JavaScript は、業界の中でよく知られていただけではありましたが、Java という勝ち馬に乗れたからです。しかし、その名前は何か人を惑わすものでもありました。なぜなら、その名前は JavaScript が「初心者向けの」Java であるかのように見えるからです。そして、それは事実に反しています。ネットスケープ社とサン社は、意図してユーザを混乱させようとはしていませんでしたし、Java と JavaScript の名前の違いがそれぞれの言語の役割をはっきり区別してしまうとも思っていませんでした。ですから今にして思えば、ネットスケープ社とサン社は、Java と JavaScript の特徴や利点をユーザに教育する — そして、どうして両方とも必要なのかを説明する — という骨を折ればよかったのに、と思います。

Gordon Mccomb, “Is JavaScript here to stay?: The challenges facing this leading user-scripting language“, JavaWorld (1996).

このようなわけで、Mocha から LiveScript への改名はネットスケープ社のプロダクトラインとして位置づけられたという経緯を予想でき、LiveScript から JavaScript への改名は、従来どおりマーケティング上の戦術の結果だったと言えるでしょう。そして、1995年5月に発表された Java ライセンスの認可と、同年12月に発表された Java との技術提供は、ネットスケープ社やブレンダンたち開発スタッフに与えた影響がそれぞれ異なります。前者はネットスケープ社とブレンダンたちにとって、或る種の脅威であったのでしょう。対して、後者は少なくともネットスケープ社にとって絶好の機会と映ったのかもしれません。そこで、サン社が登録商標をもち、ネットスケープ社は “JavaScript” と名のついたプロダクトを世に送り出すこととなったのでしょう。

JavaScript の生い立ちという教訓

もちろん、これまで紹介してきた引用の著者は殆ど全員が “JavaScript” という名称を一つの災難だと捉えています。しかし、渦中にいたブレンダンは当時のネットスケープ社の決定に反対したのかどうかも語ってはいませんし、反対できたのかどうかも不明です。このあたりは、当時の役員や本人に語る機会と意志がなければはっきりしませんが、いまとなってはそうする必要はないでしょう。これまで JavaScript と呼ばれることになった言語の開発と命名の経緯を追ってきて、私たちが学ぶべきことは、「WEB 2.0 とか CGM などと言っているマーケティング屋を信用するな」という枝葉末節ではないはずです。

冒頭で述べた、「じゃあ、なんでこんな紛らわしい名前がついているのか」という質問に答えようとすると、最も簡単な返事は当時のネットスケープ社にいたマーケティング担当者や役員たちを引き合いに出すことなのでしょう。いま開発に携わっている私たちも、この名前には困惑しているのですと言うしかないのでしょうか。もちろん一つのプロジェクト・マネジメントとして、このスクリプト言語を世に送り出す経緯を見れば、そこには様々な思惑や力関係が働いており、軽々には語れません。たとえ言語の仕様や書式が Java と似ても似つかなかったにせよ、ネットスケープ社の役員らには、”Java” というブランドを冠した手軽に扱える言語を提供して、プロパティやメソッドにドット記法でアクセスするという、ちょっとした Java 気分でも味わってもらえたらよいという程度の理解しかなかったのかもしれないからです。

参考

Steve Champeon
JavaScript: How Did We Get Here?“, April 06, 2001.

Rewind to early 1995. Netscape had just hired Brendan Eich away from MicroUnity Systems Engineering, to take charge of the design and implementation of a new language. Tasked with making Navigator”s newly added Java support more accessible to non-Java programmers, Eich eventually decided that a loosely-typed scripting language suited the environment and audience, namely the few thousand web designers and developers who needed to be able to tie into page elements (such as forms, or frames, or images) without a bytecode compiler or knowledge of object-oriented software design.

The language he created was christened “LiveScript,” to reflect its dynamic nature, but was quickly (before the end of the Navigator 2.0 beta cycle) renamed JavaScript, a mistake driven by marketing that would plague web designers for years to come, as they confused the two incessantly on mailing lists and on Usenet. Netscape and Sun jointly announced the new language on December 4, 1995, calling it a “complement” to both HTML and Java.

江原顕雄
いまさら聞けないJavaScript入門」, @IT (2007/7/17).
Marc Andreessen
INNOVATORS OF THE NET: BRENDAN EICH AND JAVASCRIPT“, June 24, 1998.(日本語訳

I came to Netscape in April 1995, after seven years at Silicon Graphics and three years at MicroUnity Systems Engineering. Netscape was about a year old then and was looking for someone to work on a scripting language or some kind of language inside the browser that could be used to automate parts of a web page or make a web page more dynamic. Java had been around for five years at First Person and Sun, and had been retooled for the web in late 1994. Netscape was the first Java licensee, so the issue became: Can we do just Java, or do we need another language?

There were people who argued strongly that Java”s fine for programmers who build components, but there”s a much larger audience of people who write scripts or maybe copy a script from somebody else and tweak it. These people are less specialized and may be paid to do something other than programming, like administer a network, and they write scripts part-time or on the side. If they”re writing small pieces of code, they just want to get their code done with the minimal amount of fuss. Finally, we agreed that this new language should look like Java, but be a scripting language.

Like all languages, it borrowed from others. LiveScript was the official name it was given when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but we rechristened it JavaScript in a joint announcement with Sun on December 4, 1995.

Brendan Eich
Foreword (PDF)”, in Danny Goodman, JavaScript Bible 4th edition, Hungry Minds, 2001.

JavaScript was born out of a desire to let HTML authors write scripts directly in their documents. This may seem obvious now, but in the spring of 1995 it was novel and more than a little at odds with both the conventional wisdom (that HTML should describe static document structure only) and the Next Big Thing (Java applets, which were hyped as the one true way to enliven and extend Web pages). Once I got past these contentions, JavaScript quickly shaped up along the following lines:

“Java-lite” syntax. Although the “natural language” syntax of HyperTalk was fresh in my mind after a friend lent me The Complete HyperCard Handbook by some fellow named Goodman, the Next Big Thing weighed heavier, especially in light of another goal: scripting Java applets. If the scripting language resembled Java, then those programmers who made the jump from JavaScript to Java would welcome similarities in syntax. But insisting on Java”s class and type declarations, or on a semicolon after each statement when a line ending would do, were out of the question — scripting for most people is about writing short snippets of code, quickly and without fuss.

Brendan Eich
JavaScript at Ten Years (MS PowerPoint)”, 2005.
Steve Holzner
JavaScript Through the Ages“, Published Aug 28, 2002 in “Inside JavaScript” by New Riders.

Brendan Eich called his creation LiveScript, but it was renamed JavaScript. (In fact, many people consider the name change a big mistake.) Although developed by Netscape, Sun had the trademarks on Java, and the name JavaScript is actually a trademark of Sun Microsystems, Inc. The new language was announced in a Netscape and Sun joint press conference on December 4, 1995. They originally positioned it as a “complement” to Java and HTML, rather than a simple support language for Java.

However, JavaScript rapidly slipped out of Java”s shadow. Programmers took to it at once, and although there were problems with bugs and later with security, JavaScript was a success. It became clear that, as Eich had realized, programming a web page in the browser made all kinds of things possible that couldn”t be done if you needed to reload the page from the server. (In fact, the most popular, original use for JavaScript was to swap images when the mouse rolled over them, and that continues to be a very popular thing to do.)

hujikojp
JavaScriptと Java“, 2006-10-19.
Jeremy Keith
A Brief History of JavaScript“, October 3rd, 2005.

JavaScript was introduced to add extra “oomph!” to web pages. Instructions written in JavaScript were interpreted and executed by the web browser. Most of these instructions involved the manipulation of the browser window: changing its size, moving it around and spawning new windows. These dubious actions were possible because JavaScript could communicate directly with the browser using a sort of Browser Object Model.

Gordon McComb
What JavaScript Is All About“, 1996.

When Netscape announced their intention of supporting Java in the Netscape 2.0 product, they also announced a collaboration with Sun on re-developing LiveScript, now renamed JavaScript. Suddenly, interest in the little “scripting language that could” blossomed. Whereas Java requires in-depth programming knowledge and a software development kit, JavaScript programs can be written by most any HTML page designer. No software development kit is needed.

Netscape Communications Corporation
NETSCAPE AND SUN ANNOUNCE JAVASCRIPT, THE OPEN, CROSS-PLATFORM OBJECT SCRIPTING LANGUAGE FOR ENTERPRISE NETWORKS AND THE INTERNET: 28 INDUSTRY-LEADING COMPANIES TO ENDORSE JAVASCRIPT AS A COMPLEMENT TO JAVA FOR EASY ONLINE APPLICATION DEVELOPMENT“, December 4, 1995.

MOUNTAIN VIEW, Calif. (December 4, 1995) — Netscape Communications Corporation (NASDAQ: NSCP) and Sun Microsystems, Inc. (NASDAQ:SUNW), today announced JavaScript, an open, cross-platform object scripting language for the creation and customization of applications on enterprise networks and the Internet. The JavaScript language complements Java, Sun”s industry-leading object-oriented, cross-platform programming language. The initial version of JavaScript is available now as part of the beta version of Netscape Navigator 2.0, which is currently available for downloading from Netscape”s web site.

JavaScript is an easy-to-use object scripting language designed for creating live online applications that link together objects and resources on both clients and servers. While Java is used by programmers to create new objects and applets, JavaScript is designed for use by HTML page authors and enterprise application developers to dynamically script the behavior of objects running on either the client or the server. JavaScript is analogous to Visual Basic in that it can be used by people with little or no programming experience to quickly construct complex applications.

James Payne
Javascript: the Beginning“, 2007-10-29.
“QBase Technology – Java Script

In result of the agreement between Netscape Communications Corporation and Sun Microsystems the idea of LiveScript had been combined with Java technology into one environment (code name “Mocha”) enabling creation of web applications and dynamic WWW pages. It was an open project and was designed as platform independent solution. After this project had finished in 1995 JavaScript was born. Great interest in JavaScript from different companies moved Microsoft to implement JavaScript in its Internet Explorer web browser. Since this even JavaScript career began.

Carol Sliwa
Scripting standard coming“, Dec 2, 1996.

“Since there wasn”t really anything written down rock-solid, they”ve had to guess at what the script rules were, and every time a new browser comes out, you can”t be sure your script is going to work in all the browsers,” [Brent] Noorda said.

Molly Wright Steenson
JavaScript:Past, Present, and Future: Where It”s Been, Where It”s Going“, 1998-11-11.

When Brendan Eich arrived at Netscape, in April 1995, talk abounded about making web pages more dynamic. The development team wondered if it would be best to just incorporate Sun”s Java, since Netscape was the first company to license it. The team decided Java was a better option for building components and not simple, easy-to-tweak scripts. Thus, LiveScript was born, shipping with Netscape Navigator 2.0 beta releases. In December 1995, the scripting language was renamed JavaScript.

“Because JavaScript took off so well on the web after the beta of Navigator 2.0, Microsoft had to implement compatible language support, to keep up,” says Eich, in “Innovators of the Net: Brendan Eich and JavaScript.” That created demand for a standards body to say, ”Here”s how it should work,” so that software companies could meet the standard and authors could be sure that their pages would work with the widest possible number of browsers.”

Stephanie
Introduction to JavaScript (PDF)”, 2002-11-12 17:01:29

JavaScript was created by Brendan Eich of Netscape Communications and was first made available in 1995 as part of Netscape Navigator 2.0, the first JavaScript-enabled Web browser. Originally called LiveScript, JavaScript owes the Java part of its name to the popularity of Java, the cross-platform, object-oriented programming language created by Sun Microsystems. JavaScript wad designed for the specific purpose (remember I said scripting languages are developed for a specific purpose) of extending the capabilities of Web browsers and providing Web developers with and easy means of adding interactivity to their Web sites.

Techotopia
The History of JavaScript“, 19 June 2007.

The scripting language developed at Netscape was originally called LiveScript. Perhaps in an effort to bask in the reflected glory of Sun Microsystem”s Java programming language, LiveScript was later renamed JavaScript, though in reality it bears no resemblance to Sun”s Java.

Simon Willison
A re-introduction to JavaScript“, March 7, 2006.(日本語訳

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Google+ Twitter Facebook