まるノート

備忘録も兼ねて、様々なお役立ち情報をまとめています。

JavaScriptの歴史 ~超簡単なまとめ~

お仕事でよく使ってきたプログラム言語 JavaScript について、今まであまり分かっていなかった周辺知識や歴史についてまとめてみました。

誕生~CommonJS誕生まで

JavaScriptの誕生から2009年のCommonJS誕生までの概要です。
一つ一つの出来事について掘り下げてゆくと、膨大な情報量になると思いますし、ここでは登場していない内容もたくさんありますが、 それらはまた別の記事で触れようと思います。


1995年
NetScape社のNetScape 2.0 というブラウザに実装された。

NetScape社 1990年代にWebブラウザなどのインターネット関連ソフトウェアを開発・販売していたアメリカ企業。正式名称はNetscape Communications Corporation。


1996年
Internet Explorer 3.0 に搭載されて一気に普及した。
しかし、NetScape 2.0に実装されたものとは異なる点があり、開発者は苦労が絶えなかったもよう。

そこで・・

1997年
NetscapeはJavaScriptを国際標準化団体 Ecma International に提出。 結果、JavaScriptの使用が標準化(統一化)された EcmaScriptの第1版が誕生


1990年代後半 NetscapeとInterNet Explorerが激しいシェア争いを繰り広げた年でもあり、 これを「第一次ブラウザ戦争」とも呼ぶ。結果はInterNet Explorerの勝利となる。


2000年代前半 JavaScript受難の時代。 個人(素人)がWebページを作成するようになり、JavaScriptを使ったごてごてした重いページが氾濫するようになる。
セキュリティへの考慮も不十分で、Javascriptの脆弱性をつくウイルスが出現した。そのためブラウザのJavascript機能を遮断する人も増えてきた。


2005年
同時期にAjax(Asynchronous JavaScript+XML)の出現により、Javascriptが急速な発展をするようになる


2006年

jQueryの誕生。少ない記述で多くのたくさんの記述ができる技術。多くの技術者に利用されJavaScriptの発展に大きく影響した。


2009年

本来はWebブラウザで動くJavaScriptをサーバーサイドでも使いたい、という需要が増え始める。
そこでブラウザ上だけでなく、サーバーサイドやクライアントでのCUI、GUI で JavaScript を使う際の仕様として「CommonJS」と呼ばれるプロジェクトが生まれる。
※ECMAScriptとは異なり、JavaScript の標準的な仕様というわけではない。


2015年
第6版からは表記を改め、ES2015として年号が使われるようになり、大幅な機能追加が行われる
以降は毎年リリースされるようになる。


ECMAScriptについて

JavaScriptには言語本体の仕様と拡張部分の機能があります。

拡張部分とは、例えばダイアログを表示する「alert」関数などです。
実は「alert」は厳密にはJavaScript本体には含まれていない機能です。
ダイアログウィンドウはJavaScriptがWebブラウザ内で動作する場合には標準的に利用できる機能です。


しかしJavaScriptはWebブラウザ以外の環境でも動作する場合があり、そのときはダイアログウィンドウが利用できるとは限りません。 例えばNode.jsといったJavaScript実行環境で利用する場合は「alert」関数は利用できません、

拡張部分とは上記のような「動作環境に依存するような機能」です。


言語本体の仕様は、拡張部分を除いた本当に汎用的な機能として標準規格化され、組み込みオブジェクトとして取り込まれています。
ECMAScriptとはこの言語本体の仕様をさします。


Ajax について

Ajaxとは、AsynchronousとJavaScriptに、XMLを組み合わせて作られた造語。

詳細は割愛します、ここではブラウザに代わってJavaScriptが通信をしている、といった程度の内容に留めておきます。

メリット

  • ユーザーの待ち時間を削減できる
  • ブラウザのリフレッシュが発生しない

Webブラウザとサーバーとの間で通信を行う場合、基本的にサーバーから帰ってきたレスポンスデータをブラウザで表示するまでの時間はユーザーは操作出来ない。 また、レスポンスで返ってきたデータを再度ブラウザで表示する際に再度読み直す必要がある。

→ Ajax通信では上記のような待ち時間が発生しない。

Ajaxの活用例

代表的な活用例は「GoogleMap」です。
もしも逐一リフレッシュが発生してしまうと、エリアを移動する度に画面が止まってしまうことになりますが、Ajaxを活用することでスムーズな画面遷移を実現しています。


以上、非常にざっくりとした内容ではありますが、ご覧いただきありがとうございます。