米マイクロソフト(MS)は、プログラミング言語「JavaScript」の構文を拡張し、大規模な開発でも利用しやすくした新言語「TypeScript」を2012年10月に発表した。JavaScriptは軽量言語の一種で開発のハードルが低く、あらゆるWebブラウザーで動くことから広く普及している。ただし、複雑なソフトウエアを構築しようとするとバグを作り込みやすくなるなど、大規模開発向けとしては力不足の面があった。

 TypeScriptが大規模開発に向けた拡張は主に二つ。まず、プログラム中でデータの種類を表す「型(type)」を強化した。データの種類についてプログラム中に不整合などがあればコンパイラによって検出できるため、開発段階でコードの品質を高めやすい。JavaScriptは、動的言語のためこうしたコンパイラ機能がない。

 一般にデータの種類を表す仕組みがあると、コード記述量が増える可能性があるが、TypeScriptはデータの種類をコンパイラが自動的に推定する仕組み(型推論)も備えるため、Javaなどのように、データの種類をプログラマーが全て指定する必要もない。

 大規模開発向け拡張のもう一つは、複数人での開発などで関数の名前が重複するのを防ぐ仕組み(名前空間)を導入した点だ。大規模開発向けにJavaScriptを拡張した言語は、TypeScript以外にもDeNAの「JSX」や米グーグルの「Dart」などがあるが、TypeScriptはツール支援も充実しており、好意的な評価が多い。

図●マイクロソフトの新言語TypeScript」の仕組み
TypeScriptは、JavaScriptを拡張した構文を備える。TypeScriptコンパイラは、JavaScriptコードを出力するため、マイクロソフト以外のWebブラウザーでも動く
[画像のクリックで拡大表示]

 TypeScriptでは互換性にも配慮した。具体的には(1)コンパイラでTypeScriptのプログラムからJavaScriptのプログラムを生成し、開発したソフトはどのWebブラウザーでも動作するようにした()、(2)JavaScriptに慣れた開発者が違和感なく扱えるよう、TypeScriptの構文は若干の拡張にとどめ、JavaScriptとほぼ同一とした。

 MSがTypeScriptを投入した狙いは、Windows 8/WindowsPhone 8、Windows Azureのアプリ開発でJavaScriptを利用しやすくし、iPhone/Android用アプリの開発者を取り込むことだ。

 TypeScriptのコンパイラはオープンソースであるため、応用範囲はMS製品にとどまらず、JavaScriptで大規模開発を行う案件であれば広く利用できる。最近ではiPhone/Android用アプリをJavaScriptで作るツール「Titanium Mobile」などが人気を博しており、TypeScriptはスマホアプリ開発でも出番がありそうだ。