ツール、言語を含む開発技術で“Openness”へと大きく舵を切る
「GrapeCity ECHO Tokyo 2016」の幕を切って落とす講演には、日本マイクロソフト デベロッパー エバンジェリズム統括本部 エバンジェリストの井上章氏が登壇した。マイクロソフトの技術的取り組みにおいて、近年、顕著な傾向となっているのが“Openness”への指向の高まりだ。言うまでもなく、その中核となっているのがオープンソースへのコミットメントである。
例えば、今回のイベントにおけるキーワードの一つである「TypeScript」。JavaScriptのスーパーセットとなるこの言語は、C#のリードアーキテクトとしても知られる同社のアンダース・ヘルスバーグ氏を中心に開発された。静的型付けとクラスベースのオブジェクト指向の採用がその大きな特徴となっている。
TypeScriptで記述されたソースをコンパイルすると、JavaScriptのコードが生成されることになるが、マイクロソフトでは、そのコンパイラ(TSC)のソースコードをGitHub上で公開している。そのほかにも、マイクロソフトが.NET Frameworkや.NETのコンパイラ、ランタイムなどのオープンソース化を表明していることは周知の通りである。
加えて、同社のそうした“Openness”への指向を強烈に印象づけているのが、無償提供されている開発エディタ製品「Visual Studio Code」だ。このツール自体がオープンソースであることに加え、Windowsだけでなく、Mac OS XやLinuxの環境でも動作可能となっている。コードエディタを中心に、IntelliSenseやコードの整形、文法チェック(Lint)、ブレークポイントの設定やステップ実行など、その搭載する開発支援機能も非常に充実しており、GoogleがTypeScriptベースで構築を進める「Angular 2」の開発においても、多くの技術者がこのVisual Studio Codeを活用しているとのことだ。
高い親和性を持つWijmoが、Angular 2による開発を強力に支援
続くセッションには、グレープシティ Wijmo開発プログラムマネージャー アレックス・イワネンコ氏が壇上に登場。Googleの提供する次世代開発フレームワークとして注目されるAngular 2とグレープシティのUIコントロール製品「Wijmo」のインテグレーションについて解説した。
WijmoにおけるAngular 2サポートを望むユーザーの声は、すでにAngular 2がアルファ版の段階からグレープシティに届いていたという。これに対し同社では、Googleの協力を得て、Angular 2がベータ版のフェーズに移行したタイミングで、Wijmoにおけるサポートをスタートさせている。
「当初のサポートは本格的なものとはいえませんでしたが、その後多くの開発者の方々が、Angular 2によるビジネスアプリケーション開発にWijmoを利用。Angular 2がリリース直前のRC(Release Candidate)版となっている現段階では、すでに開発を終了しているというお客様も多く見られます。まだプラットフォームとして正式にリリースされていないにもかかわらず、本番環境でお使いのお客様がこれだけ増えているという状況は、非常に珍しいことだと感じています」とイワネンコ氏は語る。
Angular 2のアプリケーションでは、アプリケーションコンポーネント、ビューコンポーネント、UIコントロールコンポーネントといったコンポーネントで構成されることがその特徴となっている。コンポーネントには、大きくは2つの要素が含まれ、一つはTypeScriptのクラスで、これはアプリケーションの挙動やランタイムAPIを定義するもの。もう一つは、HTMLのテンプレートであり、こちらはアプリケーションのルック&フィールの“ルック”の部分を定義し、画面上でページをどのように見せるかを決めるものだ。「要するにAngular 2のコンポーネントは、これらTypeScriptのクラスとテンプレートを組み合わせるかたちで、プロパティやイベントのバインディングを行いながら動作することになります」とイワネンコ氏は解説する。
一方、Wijmoのライブラリは、複数のUIコントロールセットで成り立っている。ピュアなJavaScriptで実装されており、jQueryなどを含むライブラリへの依存性もない。また、TypeScriptで記述されていることも、その大きな特徴となっている。「Angular 2自体もTypeScriptで記述されているので、Wijmoとの間には高い親和性があり、インテグレーションも非常にやりやすくなっています」とイワネンコ氏は説明する。
これに関しWijmoでは、「Wijmo Angular 2 interop(相互運用モジュール)」を用意している。例えば、Wijmoライブラリにはユーザーから日付情報を収集する「InputDate」というコントロールが含まれているが、相互運用モジュールではそれに対応する「WjInputDate」というディレクティブを用意。その利用により、Angular 2のアプリケーションにWijmoのInputDateコントロールを追加することができるわけだ。このようにWijmoにおいては、Angular 2のアプリケーションでWijmoの全コントロールを追加し、双方向を含むバインディングを行うための仕組みを提供している。このときWijmoでは、パフォーマンス重視の設計がなされており、Angular 2アプリケーションにおいても、コードのオーバーヘッドを最小限に抑えながら、サイズ的にも軽量で高速なコンポーネントの実装が可能となっている。
「今後、Angular 2は、エンタープライズシステム開発向けの強固な基盤となっていくことは間違いありません。特にTypeScriptというモダンなオブジェクト指向言語を用いていることはその大きなメリット。高い親和性を備えるWijmoが、Angular 2によるアプリケーション開発を強力に支援していくことになります」とイワネンコ氏は語る。