JavaScriptと Java
JavaScriptの出自について知ってしまったのでまとめてみる次第。
本当は弾さんの以下の言及について疑問を持ったのが発端だ。
当時彼が抱えていた課題は、「Javaに見た目が似ている、ブラウザーを制御するための言語を開発せよ」だったはずです。Cに対するcshみたいなものですね。しかし大事なのは「ブラウザーを制御する」の部分です。今はとにかく当時はあくまでブラウザーが主で、言語は従だったはずです。しかも当時は Netscapeは一営利企業。納期のプレッシャーは今のオープンソースベースの開発の比ではなかったはずです。
JavaScriptって当時は LiveScriptって言って、Javaとは関係のなかったはずだぞ?? あれは小ざかしい NetScape社が Java人気にあやかってああいう名前にしただけじゃなかったっけ??
と思ったけどやっぱり文法は似すぎている。反射して噛み付くのはよそうと調べ始めると面白いものが見つかった。JavaScriptの作者 Brendan Eichの ICFP 2005 Key Note Speech 「JavaScript at Ten Years」だ。それによるとはっきりこう書かれている。
「Javaに似せろ」という技術的プレッシャーを明確に述べている。弾さんは正しかったようだ。考えてみたら、この講演ぐらいしっかり知っていたんだろう。
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とのコンペ状態だったため、でっち上げてつくり、設計上のミスもそのままのこってしまったというのだろう。
確かに、あのころはなんだかめまぐるしかった。Mosaicが NetScapeになり 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言語から脱皮すればよかったのになあ、とか思わなくもない。