67
JavaScript History

JS history

Embed Size (px)

Citation preview

Page 1: JS history

JavaScriptHistory

Page 2: JS history

the rise of web browsers

Page 3: JS history

NCSA

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

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

Page 4: JS history

NCSA Mosaic• 1993年に1.0リリース

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

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

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

Page 5: JS history

Netscape

•当初の社名はMosaic Communications Corporation

• World Wide Web を事業化

Page 6: JS history

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

• SGI創始者(in 1982)

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

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

•Marc Andreessen

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

Page 7: JS history

Netscape Navigator•当初はMosaic Netscape

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

• Netscape Navigator 1.0 (Dec, 1994)

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

Page 8: JS history

MSは?

Page 9: JS history

Netscape

NCSA Mosaic

Spyglass

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

Page 10: JS history

NCSA Mosaic

Netscape

Spyglass

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

Page 11: JS history

Internet Explorer 誕生

Page 12: JS history

1995年

Page 13: JS history

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

Page 14: JS history

懸案事項

•Java Appletは複雑すぎ

•初心者には敷居が高い

Page 15: JS history

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

Page 16: JS history

スクリプト言語が欲しい

Page 17: JS history

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

Page 18: JS history

開発者招聘

•Brendan Eich•当時はSGI勤務

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

•後のMozilla CTO

Page 19: JS history

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

Page 20: JS history

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

Page 21: JS history

実装へ

•超短期

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

• GCも実装の必要アリ

Page 22: JS history

Self Scheme

JavaScript

プロトタイプベースのOOP

関数型言語の特質

+Javaっぽい文法

Page 23: JS history

Brendan曰く

Page 24: JS history

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

Page 25: JS history

ちなみに

Page 26: JS history

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

Page 27: JS history

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

Page 28: JS history

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

Page 29: JS history

そんなこんなで

Page 30: JS history

JavaScriptはNetscape Navigator 2.0にて

デビュー

Page 31: JS history

対するMS

Page 32: JS history

JScript

• Netscape を追撃

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

Page 33: JS history

JScript

• Netscape を追撃

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

Page 34: JS history

そのため

Page 35: JS history

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

•JavaScriptも使えるぜ

Page 36: JS history

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

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

Page 37: JS history

標準化への道

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

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

Page 38: JS history

W3C?

Page 39: JS history

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

Page 40: JS history

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

Page 41: JS history

標準化への旅

Page 42: JS history

一行が辿り着いたのは

Page 43: JS history
Page 44: JS history

ECMA

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

•Microsoftも委員を務めている

Page 45: JS history

•ごく基本的な文法

•ごく基本的な演算子

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

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

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

ECMA-262 1st

Page 46: JS history

ES2

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

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

Page 47: JS history

ES3

•ようやく正規表現導入

• Stringまわりの強化

• try/catchなどの例外処理

•エラー処理まわり

Page 48: JS history

ES3百花繚乱

•各種ブラウザ

• Adobe製品

•Max/MSPなんかにも

Page 49: JS history

ES4策定へ

•Class

• Interface

• package

• namespace etc....

Page 50: JS history

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

Page 51: JS history

Douglas Crockford

Page 52: JS history

Crockford節、炸裂!!!

そんな仕様認

められるかぁ

ッッッ!!!

Page 53: JS history

これが原因で

Page 54: JS history

TC39分裂ES4ES3.1

Adobe

MozillaYahoo!

Microsoftほか

など

Page 55: JS history

結果

Page 56: JS history

ES4終了のお知らせ

Page 57: JS history

Adobe:

Page 58: JS history

Adobe:え?

Page 59: JS history

Adobe:mjd?

Page 60: JS history

Adobeの悲劇

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

Page 61: JS history

Adobe涙目

Page 62: JS history

時は流れ

Page 63: JS history

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

Page 64: JS history

ES5•ES3.1ベース

• No New Syntax

• strictモード

• JSONサポート

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

Page 65: JS history

そして

Page 66: JS history

ES-Harmonyへ

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

•あと2年くらい後?

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

Page 67: JS history

第一部