概要
JavaScriptという言葉は狭義にはMozillaが仕様を策定し実装しているスクリプト言語を指す。このスクリプト言語はEcmaインターナショナルでECMAScript(ECMA-262)として標準化されており、多くのWebブラウザー等はこの標準化されたECMAScriptを実装している。たとえば、マイクロソフトによる実装はJScriptと呼ぶ。
一般的にJavaScriptという言葉が使われるときはこのようなさまざまなECMAScriptの実装も含んだ幅広い意味でつかわれるので、どちらの意味でJavaScriptという言葉が使われているかは文脈で判断する必要がある。
ECMAScriptは仕様自体に独自の拡張を条件付きで認める記述があり、現在主要なブラウザが実装しているスクリプト言語はすべてECMAScriptに準拠していることになる。広義の意味でこれをJavaScriptと呼ぶ場合、主要なブラウザが実装しているスクリプト言語はマイクロソフトやGoogle,Appleの実装も含めてJavaScriptである。
なお、Webブラウザーでよく実装されているAPIであるDOM(Document Object Model)はECMAScriptの仕様の一部ではないので、DOMの準拠の有無はECMAScriptの準拠の有無とは関係ない。
また、プログラミング言語JavaはJavaScriptとは別物である(後述の#歴史を参照)。
プログラミング言語としての特徴
JavaScriptはプロトタイプベースのオブジェクト指向プログラミング言語である。多くの場合はC言語に似た手続き型言語のようなスタイルで書かれるが、第一級関数をサポートしている(関数を第一級オブジェクトとして扱える)など、関数型言語の性質も持ち合わせている。そのような柔軟な設計から、いくつかのアプリケーションではマクロ言語としても採用されている。
AptanaやEclipse、NetBeans、IntelliJ IDEAなどの統合開発環境はJavaScriptをサポートしており、大規模開発が可能になっている。また各処理系の実装の違いによる互換性の問題は、Prototype JavaScript FrameworkなどのJavaScriptライブラリが吸収することにより解決が図られている。さらにExt JSなどの本格的なGUIライブラリの登場により、デスクトップアプリケーションと遜色ないユーザインタフェースの構築が可能になった。
また、Direct Web Remoting (DWR) などの技術の発達によりクライアント・サーバ間の通信が著しく容易になったことや、JettyなどのアプリケーションサーバがComet利用時のメモリ使用量の削減を実現したため、サーバからクライアントへの情報のプッシュ型の配信が実用的となった。
JavaScriptはスレッド制御の命令をサポートしていないため、マルチスレッドのコードを書くことが困難だが、WHATWGによりWeb Workers APIの策定が進められており、バックグラウンド処理や非同期入出力の制御が容易に実現できるようになる。
最近ではNode.jsなどの登場によりサーバサイドのプログラミング言語としても注目を集めている。
関連商品
-
たのしいRuby 第3版
高橋 征義 ソフトバンククリエイティブ
¥ 2,730
2012/05/28 10:58 更新 -
プログラミング言語 Ruby
まつもと ゆきひろ オライリージャパン
¥ 3,990
2012/05/28 10:58 更新 -
Ruby on Rails 3 アプリケーションプログラミング
山田 祥寛 技術評論社
¥ 3,675
2012/05/28 10:58 更新 -
初めてのRuby
Yugui オライリージャパン
¥ 2,310
2012/05/28 10:58 更新 -
たのしいRuby 第2版 Rubyではじめる気軽なプログラミング
高橋 征義 ソフトバンククリエイティブ
¥ 2,730
2012/05/28 10:58 更新 -
メタプログラミングRuby
Paolo Perrotta アスキー・メディアワークス
¥ 2,940
2012/05/28 10:58 更新