Edited at

Javascriptの歴史


Javascriptの歴史

Javascriptといえば,2016年現在,Webのフロントエンドには欠かせない技術となっているが,

そういえば,昔はJavascriptが使われているWebページはごてごてしてて重く,

ネットを使うときはブラウザのJavascript機能を切っていた気がする.

いつからこうなったのか?

ちょっと調べてみた.

(参考サイト)

http://www.kogures.com/hitoshi/history/javascript/index.html

http://www.slideshare.net/badatmath/js-shistory

http://blog.e-riverstyle.com/2009/12/web-ncsa-mosaic.html

http://wise9.jp/archives/2245

http://www.atmarkit.co.jp/ait/articles/0707/17/news114_3.html

http://www.blooberry.com/indexdot/history/netscape.htm

http://www.ezms.net/guide/dev/js/js_history.html

http://learning-fuzoku.hatenablog.com/entry/2015/03/07/010241

http://jxck.hatenablog.com/entry/ajax-10th-anniversary

https://developer.mozilla.org/ja/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla

https://ja.wikipedia.org/wiki/Adobe_Flash

https://ja.wikipedia.org/wiki/Google_Chrome

https://ja.wikipedia.org/wiki/Internet_Explorer

https://ja.wikipedia.org/wiki/Java

https://ja.wikipedia.org/wiki/Microsoft_Windows_95

https://en.wikipedia.org/wiki/Netscape_(web_browser)


1990年代 黎明期

Javascriptは主にブラウザ上で動く言語であり,

その歴史はブラウザの歴史と切っても切れない関係にある.


1993年


NCSA Mosaic誕生

世界初の画像をインライン表示させることができたWebブラウザ.

HTTP,FTP,NNTP,Gopherなどの詰め込めるプロトコルは全部実装していたらしい.

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

- Netscape

- Spyglass

後に,MicroSoft(MS)はSpyglassからMosaicのライセンスを獲得し,Internet Explorer(IE)を作る.


1994年


Netscape Navigator(NN) 1.0 リリース

12月5日 Netscape Navigator(NN) 1.0がリリースされ,非常に人気を博す.


1995年

色々転機となる年.

Dynamic HTML(DHTML),つまり動くWebページを実現するための技術が出始める.


Java発表

5月23日,今でも現役のJavaが発表される.

同時にJava Applet発表.ブラウザで動くJavaとして注目を集める


IE 1.0発表

8月24日,Windows 95が発売され,IE1.0がMicrosoft Plus! for Windowsに組み込まれる.


NN 2.0にJavascript

12月,NN 2.0に,ブレンダン・アイク(Brendan Eich)が開発した『LiveScript』が実装される

Netscape Communications CorporationとSun Microsystems(現Oracle)は当時提携関係にあり,

Javaの勢いに便乗しようとLiveScriptから『Javascript』に改名.

ここでついにJavascriptが登場する.


1996年


IE 3.0登場

8月13日,IE 3.0登場

MSはIEにJavascriptを搭載しようとしたが,NN社はライセンスを供与しなかった.

そのため,Javascriptに似た言語として『JScript』という言語を開発

Javascriptとはかなり非互換の部分があり,

Javascriptで作成したスクリプトはIEで動かず,

JScriptで作成したスクリプトはNNでは動かないという開発者泣かせの状態に.


Flashの発表

この年(1996年)にFutureWave Softwareという会社が、

Webページ上でのアニメーションやインタラクティブな動作を簡単に実現するFuture Splash Playerというプラグインを作成.

後のFlash.

Javaアプレットよりも軽く,Javaアプレットでできることの殆どをカバー.

この技術が地球上を席巻する.


1997年


標準化へ

JscriptとJavascriptというブラウザ互換性のない状態を解決しようと

NN社は,Javascriptを標準化しようと画策し,ECMAという標準化機関にJavascriptの標準化を依頼.

ECMA-262 初版ができる.


2000年代前半 泥沼時代


標準化の決裂

1998年 ECMA-262 第2版

1999年 ECMA-262 第3版

までは標準化がうまくいっていたが,

ECMA-262 第4版が出るとき,4版にしようとするAdobe,Mozilla(旧NN社)と

そんな仕様認められるか!と

4版を放棄し3.1版を善しとするDouglas Crockford以下MSやYahoo!とで意見が別れ,打ち切りとなる.

このように,なかなか標準化が進まない.


この頃のJavascript

比較的容易に利用可能できるため,Javascriptが徐々に普及するものの,

無駄にアニメーションするウェブページなど酷いサイトが増え始め,Javascriptを使ったページの評判がどんどん悪くなる.

また,ブラウザもセキュリティへの考慮が不十分で,

Javascriptの脆弱性をつくウィルスが登場したり,

ブラウザに無理に負荷をかける通称「ブラクラ」が簡単に作れてしまったりしたので,

ブラウザのJavascript機能をOFFにする人も続出した.

動くWebページは,Flashを使ったサイトが主流になり,

フルFlashでWebサイトを作る職業はWeb業界の花型の職業であったらしい.

ECMA Scriptを元にしたAction ScriptがFlashに組み込まれ,

よりFlashの需要が高まり,ネイティブなJavascriptいらないんじゃないかという時代が続く.


2000年代後半 復権時代


Ajax技術の登場

こんな感じで軽視されていたJavascriptであるが,

2005年,Googleは,JavascriptのAjax技術(非同期通信)を使ったGoogle Mapを発表し世間を驚かす.

Javascriptのルネッサンスが起きる.

GmailにもAjax技術を使い,JavascriptはWebにはなくてはならないものになる.


ライブラリの普及

Javascriptが見直され始め,

formの内容を加工するような,ちょっとしたプログラムを書くものから,

より規模の大きいプロジェクトに使われるようになり,JSライブラリなるものが登場する.

2005年にprototype.jsや2010年にjQueryなどが出てきて,よりリッチな表現が可能になる.


V8エンジンの登場

2008年にGoogle chromeが公開

ここに積まれていたV8エンジンというJIT(Just in time) Virtual Machine型の

JavaScript実行エンジンが搭載され,Javascriptは遅いという常識を覆していく.


標準化への前進

2009年にECMA-262 第5版が発表され,標準化にどんどん近づいていく.

こちらはECMA3.1版を踏襲している.


Node.js 以後 (2010年以降)


ブラウザからの独立

2009年にV8 Javascriptエンジンで動作するサーバーサイドのJavascript環境であるNode.jsが登場し,

それまで,ブラウザでしか動かせないというJavascriptの常識を一気に覆す.

この辺の記事が参考になる

http://d.hatena.ne.jp/badatmath/20101020/1287587240

http://d.hatena.ne.jp/badatmath/20101022/1287701281


JS フレームワークの登場

Javascriptが見直されるにつれ,アプリケーションはどんどん大規模になっていく.

Backbone.js,Angular.js,React.js,Riot.jsなどがフロントエンドの現場では使われ始める.

タスクランナーとかテンプレートエンジンなんかが出てきて,より高度化・複雑化しています...


ECMA-262 第6版 (Harmony)

そして,2015年6月17日,プロジェクトコードHarmoneyが完成.

ECMA 3.1と4との対立を文字通りHarmoney(調和)させたらしい.

まぁ,正直言って,いままでのベスト・プラクティスとは

まったく違った書き方をしなければならないので

勉強嫌いのプログラマー泣かせの仕様だと思うのですが...


まとめ


  1. IE(Jscript) vs NN(Javascript)

  2. Flashにボッコボコに

  3. 標準化へ

  4. Ajaxで大爆発

  5. node.jsでブラウザだけじゃない言語へ

  6. 高度に,そして便利に


所感

結構紆余曲折あり,今の形になったJavascript.

これから,どのように広がっていくのか,非常に楽しみな言語です.

C++11でautoとか実装して来ているし,

Javascriptもclass構文が使えるようになったりして,

言語間の違いがだんだんなくなっているなぁと感じていますが...