用途 | スクリプティング (とくにウェブ上) |
---|---|
実行 | インタプリタ |
日本語 | △ (実装による) |
対応環境 | 汎用 (とくに Windows) |
入手 | ブラウザ組込み |
Microsoft が開発した、JavaScript 互換の スクリプト言語です。
「互換」とはいうものの、ちょっといわくつきです。ウェブ閲覧ソフトの分野で 同社のライバルである Netscape が、Sun と共同で JavaScript を開発したのが 1995 年の ことでした。これは、それまで単に「読む」だけだったウェブページを インタラクティブにするもので、その後のインターネットの方向性を 大きく変える可能性を持っていました。当時 Microsoft の Internet Explorer は バージョン 2.0。性能がまだまだ未熟であり、すでに普及していた Netscape Navigator に 比べて「おもちゃ」とまで言われていました。Microsoft としては ウェブへの入り口にあたる閲覧ソフトは自社製品で抑えたいところ。 Internet Explorer の強化は重要な課題でした。
そこで Microsoft は、JavaScript のエンジンを Internet Explorer にも 組み込もうと考えました。ところが、Netscape が Microsoft へのライセンス供与を 認めませんでした。このままではまた Navigator に 引き離されてしまう---そこで Microsoft が選んだのが、「JavaScript 互換の言語」 という作戦だったのです。
ただし、JScript は JavaScript の単純なクローンではありません。JScript は、 同社の Visual Basic を元にして新たに開発された VBScript とともに、 Internet Explorer 3.0 によって世に送り出されましたが、ここで Microsoft が 工夫したのが、スクリプトを読み込んで解釈する機能と、ウェブページを操作する機能を 分離するということでした。スクリプトを解釈する部分は JScript と VBScript で それぞれ必要になりますが、そのスクリプトに従ってウェブページを操作する部分は 共通で使うわけです。
Microsoft は以前から、プログラムを部品化するための技術を開発し、 広めようとしてきました。そこで、COM (コンポーネント・オブジェクト・モデル) と 呼ばれるその技術を使い、スクリプト解釈の機能とウェブページを操作する機能を 分離しました。
その結果、スクリプト解釈の機能を別の用途にも使えるようになりました。 Windows 98 から標準搭載されるようになった「Windows Scripting Host」はその例で、 ウェブページを操作する機能の代わりに Windows 上のデータを扱う機能を 用意したものです。これを使うと、Windows 上でよく行う処理を JScript や VBScript で 書いて実行することができます。
また逆に、スクリプト解釈の機能を追加するだけで、 Internet Explorer や Windows Scripting Host を新しいスクリプト言語に 対応させることもできます。実際に、Perl をもとにした PerlScript の解釈機能を 収めた COM 部品などがすでに登場しています。
このように、JScript は元になった JavaScript とはまったく性質の違ったものに なりました。さらに文法の面でも JavaScript との違いがあり、 「互換」とはいうものの JavaScript で書いたスクリプトが必ずしも Internet Explorer で 動かないという問題が頻繁に起こっていました。結局、両者をもとにした 標準仕様が作られ、少なくとも文法などの基本的な部分については共通化することに なりました。ヨーロッパの標準化機関である ECMA で作成された ECMA-262 という仕様が それで、またの名を ECMAScript といいます。 Microsoft も Netscape も、最新版の閲覧ソフトでは ECMA-262 仕様に 準拠しているとしています。
ただ、この仕様は汎用性を目指したためにウェブ関連の機能についてはまったく 扱っていません。World Wide Web Consortium (W3C) の Document Object Model (DOM) が その部分の標準仕様として 1998 年 10 月に発表され、今後この仕様への準拠が 行われることで、やっとウェブスクリプティング分野での JavaScript と JScript の 共通化が進むと期待されています。
JavaScript の項にあるリンク集もご覧ください。
このほかにもご存知の方は、ご一報ください。