概要
JavaScriptという言葉は狭義にはMozilla(firefoxが有名)が仕様を策定し実装しているスクリプト言語を指す。このスクリプト言語は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とは全くの別物であり、派生言語でも何でもない。本言語の名前は、インターネット環境を担う言語として当時のJavaの人気にあやかっただけであり、両言語の構文はともにC言語を意識しているため部分的に似たところもあるがそれ以上の関連は特にない(一応設計の際「Javaみたいな見た目にしてくれ」というリクエストはあったらしいが)。そもそもはNetscape Navigator 2.0のために作られたもので、元はLiveScriptといった。
プログラミング言語としての特徴
JavaScriptはプロトタイプベースのオブジェクト指向プログラミング言語である。多くの場合はC言語に似た手続き型言語のようなスタイルで書かれるが、第一級関数をサポートしている(関数を第一級オブジェクトとして扱える)など、関数型言語の性質も持ち合わせている。そのような柔軟な設計から、いくつかのアプリケーションではマクロ言語としても採用されている。ファイルフォーマットは.js。
AptanaやEclipse、NetBeans、IntelliJ IDEAなどの統合開発環境はJavaScriptをサポートしており、大規模開発が可能になっている。また各処理系の実装の違いによる互換性の問題は、Prototype JavaScript FrameworkなどのJavaScriptライブラリが吸収することにより解決が図られている。さらにExt JSなどの本格的なGUIライブラリの登場により、デスクトップアプリケーションと遜色ないユーザインタフェースの構築が可能になった。
また、Direct Web Remoting (DWR) などの技術の発達によりクライアント・サーバ間の通信が著しく容易になったことや、JettyなどのアプリケーションサーバがComet利用時のメモリ使用量の削減を実現したため、サーバからクライアントへの情報のプッシュ型の配信が実用的となった。
JavaScriptはスレッド制御の命令をサポートしていないため、マルチスレッドのコードを書くことが困難だったが、HTML5の仕様にWeb Workers APIが組み込まれ、バックグラウンド処理や非同期入出力の制御が容易に実現できるようになった。
関連タグ
以下は、スクリプトとして採用されているゲーム制作ツール・ソフト・サービス