JavaScriptとは
JavaScript(ジャバスクリプト)は、主にWebブラウザ上で動作し、HTMLの動的書き換えや入力フォームの自動補完や、ウェブページの使用感向上を目的として使用されたり、リッチクライアントアプリケーションの構築に使われるスクリプト言語です。
文法はプロトタイプベースのオブジェクト指向型で、多くの場合、C言語に似た手続き型言語のようなスタイルで書かれていますが、関数型言語とも多くの類似点があります。近年ではその柔軟な設計が評価され、様々なアプリケーションで自動実行の用途におけるマクロ言語としても採用されています。当初は、テキストエディタで編集するだけの簡単なアプリ構築に使われていたのですが、最近では、IntelliJ IDEAやSpket IDEなどにより、IDEにコード補完・編集時のリアルタイム文法チェック・リファクタリングなどの機能が搭載されるようになり、大規模開発も可能となっています。また、Ajaxという技術における、ブラウザ間の互換性の問題があったのですが、JavaScriptライブラリにより吸収することで、大きく解決されるということもありました。さらに、ExtJSなどの本格的なGUIライブラリの登場で、デスクトップアプリと差がないアプリを作ることが可能となっています。また、DWRなどのJavaScriptとサーバ間をつなぐ技術の発達により、クライアント・サーバ間の通信が著しく容易になっていて、また、JettyなどのアプリケーションサーバがComet利用時のメモリ使用量の削減を実現したため、サーバからクライアントへの情報のPush型の配信が実用的になっています。また、表記方法は、JavaとScriptの間は詰めて表記します。Javaと名前や文法が似ているためしばしば混同されているのですが、実は互換性は全くなくまったく別のものなので注意しましょう。Javaと呼ぶ場合はプログラミング言語Javaを指します。
JavaScriptはネットスケープコミュニケーションズのBrendan Eichによって開発されて、Netscape Navigator 2.0で実装された。開発当初はLiveScriptと呼ばれていたのですが、この頃Sun Microsystemsの開発したプログラミング言語Javaが当時大きな注目を浴びており、NetscapeとSun Microsystemsが技術提携していた事もあったことから、JavaScriptという名前に変更されました。そして、1996年にマイクロソフトのInternet Explorer3.0に搭載されるようになると、その手軽さからJavaScriptは急速に普及していきます。1997年、通信に関する標準を策定する国際団体Ecma Internationalによって JavaScript の中核的な仕様がECMAScriptとして標準化されて、多くの Webブラウザで利用できるようになりました。この頃ネットスケープ社は、自社サーバ製品で、WEBアプリケーション開発言語としての実装であるLiveWire JavaScriptも開発したのですが、こちらはあまり普及しなかったようです。
このように普及率をのばしていったJavaScriptでしたが、1990年代後半に入ると一転不遇の時代を迎えます。MicrosoftのInternet Explorer、NetscapeのNetscape Navigator間で勃発した、いわゆる第一次ブラウザ戦争で、両ブラウザが独自の拡張を施し様々な仕様が乱立する事態に発展しました。この時は、ブラウザに関するセキュリティ意識も今日程高くなく、JavaScriptに関する脆弱性が次々と発見されることになってしまいます。また、初心者でも比較的容易にプログラムが書けることがJavaScriptの言語仕様及びその周辺技術に精通していない利用者が増える原因ともなったとして批判も高まり、さらにその名称から、Javaのサブセットや下位バージョンの様な印象を一部の人間に与えたこともあると思います。この様な理由から各ブラウザ上での挙動に差異が出てしまったり、必要以上に「アマチュアが使うもの」「低機能な言語」と捉えられてしまうことになってしまします。
そして近年、市場のブラウザ間互換性がある程度確立された2000年頃になると、GoogleやAmazon等の大手企業もJavaScriptを積極的に利用し始めました。代表的なものとしてはGoogle マップやAmazon Diamond Search等があり、2005年、JavaScriptの非同期通信を利用した技術にAjaxという名前がつけられたことによって、高機能なWebアプリケーションの開発言語の一つとして再び注目を集めているのです。しかしそれでも、JavaScriptによる脆弱性や攻撃は存在しているのが現状で、状況が本質的に変わった訳ではないという意見もあります。また、最近ではMozilla Firefox用拡張機能のGreasemonkeyやOperaの標準機能などにおいて、「User JavaScript」と呼ばれる、JavaScriptを使ったWebのカスタマイズが可能なWebブラウザも出てきています。
Valuable information
2022/8/30 更新