聞くも涙、語るも涙の(?)JavaScript史
ここでは、JavaScriptの歴史について解説します。JavaScriptの歴史を調べていくと、まるで悲劇の主人公のような扱われ方をしています。
なぜ、そのような事態になったのか? 見てみましょう。
■悲劇1 ネーミングの変更で混乱・誤解を招く
JavaScriptはNetscape Communications社のBrendan Eich氏によって作られました。しかし、開発当初はJavaScriptという名前でなく、LiveScriptという名前でした。これはWebページにアクションを出すためのLiveなスクリプト…… といった意味合いで名付けられました。
しかし、当時はSun Microsystems社が「Java」という言語を開発し、非常に注目されていました。このJava人気に相乗りしようと考えたNetscape Communications社は、LiveScriptをJavaScriptという名前に変更し、1995年12月にWebブラウザNetscape Navigatorのバージョン 2に搭載してリリースしました。
JavaとJavaScriptはまったくの別物です。が、この似たようなネーミングにより、JavaScriptはまるでJavaの別バージョンのような印象を与え、開発やユーザーに大きな混乱を招きました。現在でも、JavaとJavaScriptを混同しているユーザーも多く、Netscape Communications社の判断は大きなミスだったと思います。
■悲劇2 “ブラウザ戦争”の犠牲者
1996年にMicrosoft社のWebブラウザInternet Explorer 3.0でJavaScriptが搭載され、ますます普及をしていきます。しかし、1990年後半は、Internet Explorer(IE)とNetscape Navigator(NN)による、シェア獲得を目指す「ブラウザ戦争」の真っただ中でした。
各Webブラウザがどんどん機能を拡張することによって、「このJavaScriptのコードは、IEでは動くけどNNでは動かない」といった事態が発生しました。このバージョンや種類によって使えたり・使えなかったりということで、「あまり使い勝手がいいプログラミング言語ではない」というイメージが生まれました。
また、Microsoft社もJavaScriptに似たJScriptというスクリプト言語を発表し、規格もより乱立していきます。
■悲劇3 「素人の言語」という偏見
JavaScriptはあまりプログラミングの知識もなく、開発環境がそろっていなくても手軽に始めることができる言語です。
しかし、この手軽さがあだになります。Webページをよりかっこよく見せたいユーザーが、WebページにどんどんJavaScriptを取り入れて改造をしていきました。その結果、一部のユーザーのWebページは、無駄に文字の大きさが変化したり、アイコンカーソルが蝶の画像になり、カーソルの軌跡を星がキラキラしたり、とセンスが悪くゴテゴテしたページが誕生しました。そのうえ、ページの読み込みはとても遅く、閲覧者に大きなストレスを与えました。
その結果、一部の人たちに「JavaScriptって素人でダサいやつが使うんだろう?」という印象を持たれ、JavaScriptは敬遠されるようになりました。
■悲劇4 セキュリティの脆弱性が多数発見される!
ブラウザ戦争のときは各社ともシェア獲得に突き進むあまり、ほとんどセキュリティのことを考えずにJavaScriptはリリースされてしまいました。その結果、多数のセキュリィティホールが発見されるという事態になってしまったといえるでしょう。
また、多数のプログラミング初心者が利用していたので、セキュリィティアナウンスがされても対処をしないユーザーも多数存在するという事態になり、クロスサイトスクリプティングやブラウザクラッシャー、ユーザー情報の奪取などにJavaScriptは利用され、その結果「JavaScriptはセキュリティ上危ない。WebブラウザのJavaScript機能は切っておこう」という意識が一部の人に生まれました。
編集部注:クロスサイトスクリプティングについて詳しく知りたい読者は、セキュリティ用語事典の「クロスサイトスクリプティング」を、ブラウザクラッシャーについては「ブラウザクラッシャー」をご参照ください。
■JavaScriptの復活
Netscape Communications社は、JavaScriptの互換性問題を解決しようと、1996年にヨーロッパの情報技術規格を策定しているECMA(欧州電子計算機工業会)に、仕様を提案し標準化を目指しました。その結果、1997年6月にECMAScript(ECMA-262)という規格がリリースされました。
互換性の問題はある程度解消され、2000年ごろからJavaScriptはAmazonやGoogleといった企業が採用をし始めました。特に、JavaScriptの通信機能を使った、WebページをリロードせずにWebサーバとデータのやりとりをする、「Ajax」技術が脚光を浴び、再びJavaScriptが表舞台に戻ってきたのでした。Ajaxの正式名称は「Asynchronous JavaScript+XML」で、JavaScriptの文字がしっかり入っています。
これからどうなる!? JavaScript
さて、今回はJavaScriptについて超特急で見てきましたが、いかがでしたでしょうか?
JavaScriptの手軽さ、問題点、歴史的な経緯やどんな雰囲気の言語かを理解できたと思います。一度は「過去のプログラミング」になりつつあったJavaScriptですが、現在Ajaxのブームによって再び注目を浴びています。セキュリティ上の不安や互換性といった問題は完全に解決されていませんが、手軽に試せるものなので、興味がある人は早速使ってみましょう。
「プログラミング言語を学んでみたいけど、どの言語から学べばいいか分からない」という人には、JavaScriptはお勧めですよ。
今回の3行まとめ
- JavaScriptはスクリプト言語でインタープリタ方式である
- 主にWebブラウザ上で動作し、Webページをいろいろといじれる
- JavaとJavaScriptは別物だが、JavaScriptとAjaxは関係がある
■参考文献
- 『JavaScript 第3版』 オライリー・ジャパン
- 『初めてのJavaScript』 オライリー・ジャパン
- 『JavaScriptクイックリファレンス 第5版』 オライリー・ジャパン
- 開発現場のUIトラブルを解決!? 画面プロトタイプ入門
- いまさら聞けない「Curl」入門(お菓子じゃない方)
- いまさら聞けない「オフラインWeb」入門──オフラインでも使えます
- いまさら聞けない「SEO」入門──検索結果の最適化
- いまさら聞けない「Webブラウザ」超入門 後編
- いまさら聞けない「Webブラウザ」超入門
- いまさら聞けない「マッシュアップ」超入門
- いまさら聞けないSVG、なぜ知られていないのか?
- いまさら聞けないActiveX&デジタル証明書入門
- いまさら聞けないウィジェット/ガジェットで気分転換
- “リッチクライアント”に至るまでの軌跡と現在(いま)
- いまさら聞けない! FlashとActionScriptについて
- いまさら聞けない“Web標準”、そしてXHTML+CSS
- いまさら聞けない、“Ajax”とは何なのか?
- いまさら聞けないJavaScript入門
- いまさら聞けないWeb2.0時代のXML入門
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- JavaScriptプログラミング再入門
Ajax全盛のいま、オブジェクト指向ベースのJavaScript知識は不可欠。過去を振り返りつつ、まずは最新開発事情をチェック - 第1回 JavaScriptの復権
- 第2回 JavaScriptの関数をマスターしよう
- 第3回 JavaScriptにおける変数の宣言とスコープ
- 最終回 JavaScriptでオブジェクト指向プログラミング
- 業務で使える! 無料Webサイト作成ツール集
Webオーサリングツールを使ってみよう:特別編 HTML+CSS、JavaScriptでWebぺージを作るときにどんなツールを使ってますか? 無料でも便利なものがたくさんあります - 古くて新しいAjaxの真実を見極める
「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう - Ajax解体新書
よりAjaxを深く理解するために、ブラウザ上の「見た目」だけに注目するのではなく、実際に目に見えない舞台裏の通信内容をモニタリングしてみよう - 第1回 Ajax技術の目に見えない通信内容をのぞいてみよう
- 第2回 Ajaxの特徴に潜むリスクをサンプルアプリで確認しよう
- 第3回 Webアプリに使えるAjaxライブラリ8選!
- JavaScript×HTMLとJavaのシームレスな開発環境
Googleからのサプライズ、Google Web Toolkit(3) JavaScript×HTMLとJavaのシームレスな開発環境を体験。Yahoo! WebサービスAPIを活用して画像検索アプリを完成