次世代Angularレンダリングエンジン「Ivy」発表、さらに小型化し高速になる実行とコンパイル。ng-conf 2018

2018年5月14日


4月18日から3日間、米国ユタ州ソルトレイクシティで開催されたイベント「ng-conf 2018」の基調講演で、Angular開発チームは現在開発中の次世代Angularレンダリングエンジン「Ivy」の詳細を発表しました。

Ivyは、モバイルデバイスでも十分に動作するほど小さく高速で、開発者にとって利用しやすいシンプルなAPIなどを備えたレンダリングエンジンを実現することを目指しています。

Angular ivy fig1

これらはすべて既存のアプリケーションを変更する必要のない、後方互換性を保証しつつ実現しようとしています。

Angular ivy fig2

Google社内ではすでにAngularを用いたサービスが600種類以上提供されており、Googleは「ワンバージョンポリシー」によって、すべてのサービスが同一バージョンのAngularを採用しています。

Angular ivy fig3

そしてAngular開発チームは1日に数回、Angularのアップデートされたコードをリポジトリにプッシュしており、そのコードは必ずこの600種類以上のアプリケーションのテストをパスする必要があるとのこと。

そのため、もしもAngularのコードに互換性のないものが含まれていた場合、サービスの管理者からはコードのロールバック要求が出されるだろうと、Angular Framework LeadのMisko Hevery氏は説明します。

Ivyの重要なコンセプトが「ローカリティ」

Ivyの重要なコンセプトが「ローカリティ」です。ローカリティによる具体的なメリットは、例えばテンプレートを1つ変更した場合、現在は全体をコンパイルする必要がありますが、Ivyではそのファイルだけをコンパイルし直せばよい、というもの。

Angular ivy fig4

これによって、例えばnpmは事前コンパイル(AOT)されたコードの状態で提供可能になりますし、全体を再コンパイルしなくてはならないケースが減るため、開発中に一部のコードを変更してテストを行う場合のコンパイル時間なども短縮されます。

さらにローカリティによって「メタプログラミング」の可能性が見えてくるとMisko Hevery氏。メタプログラミングとは、例えばアプリケーションが自身の実行に必要なコンポーネントをアプリケーション内で生成しビルドする、といったものです。

Ivyはランタイムがすでにデモ可能な段階で、テンプレートコンパイラを現在開発中です。その後、Google社内で動作確認を開始し、ベータ版を公開。動作確認が済んだ段階で正式版をリリースする見通し。

Angular ivy fig5


ng-conf 2018

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


≫次の記事
App Engineが軽量コンテナのgVisorを実行環境として採用、スタンダード環境でNode.jsをサポート開始

≪前の記事
Angular 6が正式リリース。コンポーネントのDOMエレメント化、PWA対応など新機能。ng-conf 2018


カテゴリ



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