宿敵と思われているMicrosoftとGoogleが、実は意外にも、JavaScriptでWebアプリケーションを書くためのGoogleのMVCフレームワークAngularJS(略称“Angular”)の、(反対意見も少なからずある)次期バージョンAngular 2で互いに協力している。
Angularはかなり前から、MicrosoftのTypeScriptのスーパーセットAtScriptを使っている。TypeScriptはJavaScriptを拡張しようとするMicrosoftの試みで、タイプアノテーションやジェネリック、モジュールなどの機能がある。いずれ、この二つの言語は一本化するのだろう。Angular 2はTypeScriptで書かれ、デベロッパはAngular 2のアプリケーションをこの言語で書くこともできる。
AtScriptが言語としてデビューしたのは昨年の10月だが、今後はAtScriptという名前は消えて、TypeScriptに統一されるようだ。
Angularは、最初JavaScriptで書かれ、その後はGoogleのDart言語やAtScriptで書かれたりした(Angular 1.xのDartバージョンやJavaScriptバージョンは今でも現存する)。AtScriptはTypeScriptに、イントロスペクション(introspection)やフィールドアノテーション、メタデータアノテーションなどの機能を加えている(上述)。で、今度はTypeScriptが、次の1.5からこれらの機能を取り入れる。そのベータのローンチは数週間後だ。
Microsoftのデベロッパ担当VP S. “Soma” Somasegarが、今日(米国時間3/5)の発表声明の中で次のように書いている:
“Angularのようなリッチなライブラリと密接に協働することにより、TypeScriptの言語機能も充実し、エンドツーエンドのアプリケーション開発がより容易になった。たとえばクラスの宣言にメタデータを加えるアノテーションを、依存性注入(dependency injection, DI)やコンパイラディレクティブのために利用できる。両者はこれからもTypeScriptとJavaScriptを将来的に一本化するための努力を続け、いずれは型付言語としてのJavaScriptのスタンダードとしてECMAScriptが採用するよう、働きかけていきたい”。
Angular 2はAngularの旧バージョンとの互換性が完全でないので、デベロッパコミュニティからの批判がとても多い。Microsoftが作った言語を使うことも、一部の人たちは気に食わないようだ。でもこれは明らかにTypeScriptの勝利であり、しかもそれは、昨年1.0がリリースされて以来、着実にユーザ数が増えているのだ。
この発表は、今日ユタ州ソルトレイクシティで行われたAngularカンファレンスng-confで行われた。そのときのビデオをご覧いただこう(TypeScriptの説明は20:00あたりから):
[原文へ]
(翻訳:iwatani(a.k.a. hiwa)