JavaScriptと Java

JavaScriptの出自について知ってしまったのでまとめてみる次第。

本当は弾さんの以下の言及について疑問を持ったのが発端だ。


当時彼が抱えていた課題は、「Javaに見た目が似ている、ブラウザーを制御するための言語を開発せよ」だったはずです。Cに対するcshみたいなものですね。しかし大事なのは「ブラウザーを制御する」の部分です。今はとにかく当時はあくまでブラウザーが主で、言語は従だったはずです。しかも当時は Netscapeは一営利企業。納期のプレッシャーは今のオープンソースベースの開発の比ではなかったはずです。

JavaScriptって当時は LiveScriptって言って、Javaとは関係のなかったはずだぞ?? あれは小ざかしい NetScape社が Java人気にあやかってああいう名前にしただけじゃなかったっけ??

と思ったけどやっぱり文法は似すぎている。反射して噛み付くのはよそうと調べ始めると面白いものが見つかった。JavaScriptの作者 Brendan Eichの ICFP 2005 Key Note Speech 「JavaScript at Ten Years」だ。それによるとはっきりこう書かれている。


Engineering pressure to “be like Java” did cause us to follow Java into some dead ends (Date inherited y2k bugs from java.util.Date!)
Javaに似せろ」という技術的プレッシャーを明確に述べている。弾さんは正しかったようだ。考えてみたら、この講演ぐらいしっかり知っていたんだろう。

以下のくだりも面白い:


  • Opportunity to do “HTML scripting language”
  • Netscape/Sun “Java deal” cast long shadow
  • Argument by code demonstration necessary
  • I hacked the JS prototype in ~1 week in May
    • And it showed! Mistakes were frozen early
社内で Javaとのコンペ状態だったため、でっち上げてつくり、設計上のミスもそのままのこってしまったというのだろう。

確かに、あのころはなんだかめまぐるしかった。MosaicNetScapeになり Windows95がでたかと思うと Javaだった。

TechVisionなどもあわせてまとめてみると以下のようになる:

1994.4 Mosaic Communications社(NetScape社の前身) 設立
1994.10 Mosaic Netscape 0.9 リリース
1995.4 Brendan Eich、NetScape社に入社
1995.5 Eich、prototypeを 1週間で hackしてデモ
1995.5 Sun社、 SUNWORLDで HotJava 公開
1995.5 NetScape社、Javaの licenseを受けることを発表
1995.9 Netscape Navigator 2.0 β (LiveScript搭載)
1995.12 JavaScriptと改名

Javaが世にでたのが 1995年5月だが、そのころにコンペ状態になっていたということは、NetScape社はもっと早く知っていたんだろうなあ。早くったって本当に1ヶ月前ぐらいかもしれないけど。

これをかんがみると納期を理由にする弾さんの意見ももっともらしい。個人的には、合理的な理由で JavaScriptみたいな変な言語ができるわけもないだろうってのもあるのだが。

Javaがあるのに Mocha(当時の JavaScriptのコードネーム)が必要だったのか、という質問に Eichはこう答えている:


  • Java for high-priced components/widgets
  • “Mocha” for mass market web designers

そう、所詮 JavaScriptは HTMLと同じように、ライトユーザのためのものだったのだ。HTMLがヘビーに使えるようになるために、不必要なものをそぎ落とし XML化していったように、JavaScriptもいらないものを落として Script言語から脱皮すればよかったのになあ、とか思わなくもない。