Angularはなぜ大規模アプリケーション開発に適しているのか。そしてAngular対応の業務用UIコンポーネント「Wijmo」のメリットとは[PR]

2017年1月25日

Webアプリケーションを開発する際に、なんらかのフレームワークやライブラリを利用することは不可欠になっています。そしてその主要なフレームワークのひとつとして知られるのが、Googleが中心になりオープンソースで開発されている「Angular」です。

Angularはビジネスアプリケーションを開発する環境も充実してきました。例えば、ビジネスアプリケーション向けのUIコンポーネントとして知られるグレープシティの「Wijmo」がAngularに対応しています。

fig (左)ロブ・ワーモールド氏 デベロッパー・アドボケイト Angular、(右)ジュールス・クレイマー氏 Angular デベロッパー・リレーションズ

本記事ではグローバルでAngularの推進活動をしているGoogleのRob Wormald(ロブ・ワーモールド)氏とJules Kremer(ジュールス・クレイマー)氏。そしてAngularに対応したWijmoのプロダクトマネージャであるグレープシティの瀬川正和氏の3人に、あらためてAngularとはどのようなフレームワークであり、特にビジネスアプリケーションの開発者にとってどんなメリットがあるのか、などを語っていただきました。

本インタビューでは「Angular 2」を前提にしていますが、GoogleはAngularの新しいバージョンポリシーにより、今後は単純に「Angular」と呼ぶことを推奨しているため、ここでもそれにならって表記を「Angular」としています。

AngularはスケーラブルなWebアプリフレームワーク

──── Angularはどのような特徴を備えたフレームワークなのか、あらためて教えていただけますか。

ワーモールド氏 Angularをデザインするうえで重視したのはスケーラブルである、ということでした。

Angularは小規模なアプリケーションから開発をスタートすることができる一方で、それに構造を持たせ、数百人、数千人の開発者で開発するような大規模なアプリケーションへと成長させることができるのです。

だからこそGoogleでもAngularを採用し、大規模なアプリケーション開発チームが開発を行っています。

一方、技術的な面でAngularがエキサイティングなところは、このプラットフォームがWebとともに進化するようにデザインされている、というところです。

WebブラウザやJavaScriptの技術は急速に進化しています。Angularであれば、デベロッパーはそうした進化を取り込みつつ、数か月後、数年後でもアプリケーションを書き直す必要がないようにと私たちは考えています。

もちろん、デベロッパーはそうした技術的進化と同時に、現時点での開発生産性を求めていることも理解しています。Angularはそのための高い開発生産性を持ちつつ、Webの進化に対応した新機能にも対応していきたいと考えています。

Angularが大規模開発に適している理由とは?

──── Angularは、そのスケーラビリティをどのように実現しているのですか?

ワーモールド氏 スケーラビリティにはいくつかの側面があります。

ひとつは開発チームのスケーラビリティです。例えば、大規模なチームではメンバーそれぞれが違う考え、違うやり方を持っていますが、Angularはそこへ一定の枠というか、うまいやり方といったものを提供し、一貫性を持たせることができるのです。

これによって数百人、数千人の開発チームにも対応します。実際にGoogle社内での大規模な開発にはAngularが使われているのです。

もうひとつはアプリケーションの規模に対するスケーラビリティです。

一般に大きなWebアプリケーションでは、起動時にWebアプリケーション全体をすべて読み込むために起動や動作が遅くなりがちです。Angularには遅延ローディングの機能があるため、必要になった時点で必要になったものを読み込むことができます。

つまり、Webアプリケーションが大規模化しても、最初に全部をロードして重くなってしまうという心配はいらなくなるのです。

さらに性能面について、AngularはChange Detection(更新検知)と呼ばれる技術を採用しています。これはWebブラウザの画面を変更するときに、変更されたところだけを高速に書き換えることができる技術です。

このおかげでAngularのバージョン1とくらべて平均で5倍以上高速になりました。Angularを用いた開発では、画面描画の最適化といった細かいことにとらわれず、ビジネスロジックに集中してもらえると思います。

私たちGoogleはデータを重視する企業です。Angularの開発ではつねに実行速度について検証し、機能追加ごとにベンチマークを取り、遅くならないようにしています。もしも開発過程において機能追加か性能かどちらかを選ばなければならないとしたら、私たちは性能を選ぶでしょう。

──── ビジネスアプリケーションの開発者にとって、Angularを利用するメリットにはどのようなものがありますか?

ジュールス氏 企業向けのデベロッパーがAngularを利用する最大のメリットは、それが包括的なプラットフォームであることだと考えています。

世の中にある多数のJavaScriptライブラリを組み合わせ、うまく動作するかどうか試行錯誤する代わりに、Angularひとつで済むようになっています。

そしてこのAngularは、ロブが説明したように開発チームに対してもWebアプリケーションに対してもスケーラブルな対応を実現しています。

──── AngularはWebコンポーネントにおいてもリードする存在ですね。

ワーモールド氏 大規模なアプリケーションの開発においてカプセル化は非常に重要で、Angularはこれを実現する技術の1つであるWeb Componentをサポートしていますし、Web Componentだけでなく、Angular ComponentもPolymer Componentもすべて同じように扱えます。

これらはAngularのアプリケーションに組み込むだけで機能します。Webのコンポーネント技術は現時点でもう利用できる、成熟したものになっていると思います。

AngularとUIコンポーネントベンダの関係は?

fig HTML5/AngularJS/TypeScript対応JavaScriptライブラリ - Wijmo [ ウィジモ ] | グレープシティ株式会社

──── AngularにもWijmoのように商用コンポーネントが登場してきています。こうしたベンダとGoogleとの関係は?

ジュールス氏 例えばWijmoの開発チームとGoogleのAngular開発チームとはとても緊密にコミュニケーションをしていて、彼らのAngular 2対応バージョンは私たちがAngular 2をリリースしたのとほぼ同時に行われました。

こうした関係構築はGoogleにとってもコンポーネントベンダにとっても、そしてWebアプリケーションデベロッパーにとっても良いものだと考えています。

──── グレープシティの瀬川さん、コンポーネントベンダとしてAngularというフレームワークをどう評価しますか?

瀬川氏 AngularのコンポーネントはECMAScriptの標準仕様をベースに構築されており、そこがUIコンポーネントベンダとして非常に使いやすいと感じています。

WijmoのコンポーネントをAngularに対応させる際には、Wijmoのコードには手を加えず、Wijmoコンポーネントのクラスを継承してプロパティやイベントを定義するなど簡単に少ないコードで対応できました。

これは単に手間が小さいという意味ではなく性能面でのオーバーヘッドも非常に小さくできました。コンポーネントベンダにとって、Angularは展開しやすいとても優れたフレームワークだと考えています。

fig (左から)ジュールス・クレイマー氏、瀬川正和氏、ロブ・ワーモールド氏

AngularとUIコンポーネントを組み合わせるメリット

──── WijmoがAngular対応になったことで、デベロッパーにはどんなメリットが提供されるとお考えですか?

瀬川氏 世の中にあるUIライブラリやUIコンポーネントは、Angular用だけでなくjQueryをベースにしたものや独自ライブラリなどさまざまなものがありますが、それぞれ利用法や実装方法が異なるため、ひとつひとつ調べて学習しなければなりません。

WijmoがAngular対応したことで、開発者はAngularのコンポーネントの使い方を理解していれば同じようにWijmoを使えます。

これはデベロッパーの学習コストを下げることにつながりますし、またWijmoの充実したコンポーネントとAngularフレームワークを組み合わせることで、さらに開発生産性を高められると思います。

一方で、Angularはこれからエンタープライズでの利用も増えると思います。そのときにAngularに対応したUIコンポーネントであるWijmoが選択肢に入ることは、私たちにとって大きいことだと考えています。

将来にわたってデベロッパーがコードを書き換えなくて済むようにする

──── Angularの今後の計画について教えてください。

ジュールス氏 Angularの性能を高めていくことはもちろんですが、エンタープライズデベロッパー向けのツールなどの充実にもフォーカスしていきます。

ワーモールド氏 Angularは今後もWebの進化に沿って強化していきますが、デベロッパーが利用するAngularのAPIについては変わることなく、デベロッパーが将来、アプリケーションのコードを書き直すことのないようにしていく、ということを強調したいと思います。

Angularの安定性を維持しつつも将来に向けての柔軟性を維持していくことが重要だと考えています。

そして、より幅広いユースケースに対応したコンポーネントベンダからのフィードバックもとても重要です。そうしたフィードバックを開発チームと共有し、今後の計画に生かしていきたいと考えています。

瀬川氏 WijmoをAngularのAOTコンパイラ(事前コンパイラ)に対応する際、問題が発生したことがありまして、そのときにロブさんやAngular開発チームと協力して解決したことがありました。こうした協業体制は今後も続けていきたいと思っています。

ワーモールド氏 私たちも、ぜひそうしたいですね。

瀬川氏 Wijmoはこれまでさまざまなプラットフォームで展開してきたコンポーネントのノウハウを持っていますし、お客様からのフィードバックもたくさん持っています。そうした知識を基にAngular開発チームに有益なフィードバックをして、一緒にAngularをよりよいものにしていければと思っています。

──── ありがとうございました。

(本記事は、グレープシティ提供のタイアップ記事です)

このエントリーをはてなブックマークに追加
follow us in feedly

カテゴリ Web技術 / JavaScript
タグ  Angular , HTML5 , JavaScript , PR


次の記事
Docker 1.13正式版登場。複数Dockerイメージをまとめてデプロイする「Docker Stack Deploy」、使われていないイメージを削除する「Docker System Prune」など新機能

前の記事
インタビュー:Rubyコミッターの笹田氏がクックパッドへの入社を決めた理由。オープンソースのコミッタはどのような思いで転職するのか?


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig