JS history

Post on 13-Jun-2015

34.826 views 2 download

Transcript of JS history

JavaScriptHistory

the rise of web browsers

NCSA

•米国立スーパーコンピューター応用研究所

•イリノイ州立大学にある

NCSA Mosaic• 1993年に1.0リリース

•本格的なWebブラウザのはしり

•画像とテキストを1ページ内にレイアウトして表示可能

•HTTP、FTP、NNTP、Gopher詰め込めるプロトコルは全部実装 -> Mosaic

Netscape

•当初の社名はMosaic Communications Corporation

• World Wide Web を事業化

主要メンバー•James H. Clark (Jim Clark)

• SGI創始者(in 1982)

• SGIやNCSAなどから人材を引き抜き

•ちなみに奥さんはめっさ美人!!

•Marc Andreessen

• NCSA Mosaic 開発チームメンバー

Netscape Navigator•当初はMosaic Netscape

• NCSAともめそうになってNetscape Navigatorに改称

• Netscape Navigator 1.0 (Dec, 1994)

• 当時のWeb標準に準拠しない部分も多かった

MSは?

Netscape

NCSA Mosaic

Spyglass

NCSA Mosaicプロジェクトは二つのベンチャーに分派

NCSA Mosaic

Netscape

Spyglass

MicrosoftSpyglassが持っていたMosaicのライセンスを獲得

Internet Explorer 誕生

1995年

Netscape NavigatorにJava搭載予定のお知らせ

懸案事項

•Java Appletは複雑すぎ

•初心者には敷居が高い

なにかこう・・・かんたんな・・・

スクリプト言語が欲しい

Netscape Navigatorにスクリプト言語を!!!

開発者招聘

•Brendan Eich•当時はSGI勤務

•「Schemeをブラウザ上に」と一本釣りされる(当時BrendanはSICP大好きっ子だった)

•後のMozilla CTO

Netscape: 「Javaっぽいのを頼む」

Brendan: 「え!?」schemeの話は??

実装へ

•超短期

• Javaっぽいものを作るためJavaの学習もしなければならない。

• GCも実装の必要アリ

Self Scheme

JavaScript

プロトタイプベースのOOP

関数型言語の特質

+Javaっぽい文法

Brendan曰く

「もうちょっと時間があればGlobal Objectのワケわかんない実装なんてしなかったのに」

ちなみに

JavaScriptという名前はSunの許諾を得て使ってます。

そう、今はOracleが権利を握っています。

今後もJavaScriptという名前が使えるようにナムナムしておきましょう。

そんなこんなで

JavaScriptはNetscape Navigator 2.0にて

デビュー

対するMS

JScript

• Netscape を追撃

• JavaScriptのマニュアルを元に独自実装

JScript

• Netscape を追撃

• JavaScriptのマニュアルを元に独自実装→そもそもマニュアルに間違いがあるなど の要因で実装が悲惨なことに

そのため

Internet Explorer 3.0ベータ版プレスリリース

•JavaScriptも使えるぜ

Internet Explorer 3.0正式版プレスリリース

•JavaScriptに関する記述なし・・・。

標準化への道

•Netscape「巨象に食われるかも」

•標準化して難を逃れよう

W3C?

当時のNetscapeは標準を無視していろんなものを実装にくっつけてた

今さら謝れない・・・よね。

標準化への旅

一行が辿り着いたのは

ECMA

•スイスのジュネーブに本拠地をおく標準化機関

•Microsoftも委員を務めている

•ごく基本的な文法

•ごく基本的な演算子

•ごく基本的なオブジェクト

•数値はIEEE754(禍根となる・・・)

•この仕様をミニマムと呼ばずに何と呼ぶか

ECMA-262 1st

ES2

•特記事項はありません。

• ISO/IECに提出するのに字面をちょいと編集したくらい。

ES3

•ようやく正規表現導入

• Stringまわりの強化

• try/catchなどの例外処理

•エラー処理まわり

ES3百花繚乱

•各種ブラウザ

• Adobe製品

•Max/MSPなんかにも

ES4策定へ

•Class

• Interface

• package

• namespace etc....

そこに立ちはだかる一人の男

Douglas Crockford

Crockford節、炸裂!!!

そんな仕様認

められるかぁ

ッッッ!!!

これが原因で

TC39分裂ES4ES3.1

Adobe

MozillaYahoo!

Microsoftほか

など

結果

ES4終了のお知らせ

Adobe:

Adobe:え?

Adobe:mjd?

Adobeの悲劇

•ES4を見越して作成したActionScript3をすでに実装、出荷済

Adobe涙目

時は流れ

和解個人的にはESオスロ合意と名付けてみたい

ES5•ES3.1ベース

• No New Syntax

• strictモード

• JSONサポート

•プロパティのアクセサまわりなど

そして

ES-Harmonyへ

•ClassなどES4の仕様が一部カムバック

•あと2年くらい後?

•詳しくは ecmascript.org のwiki参照

第一部