Googleが人気の高いAngular JavaScriptフレームワークのバージョン4.0をリリースした。生成コードのサイズ縮小と、合理的なリリーススケジュールの維持に重点が置かれている。
セマンティックバージョニングを使用するようになったため、バージョン4.0リリースはバージョン2.0リリースの時ほど大きく変化してはいない。これはまた、互換性を損なうような変更の有無については、開発者自身が注意しなくてはならないという意味にもなる。幸いにも今回の変化点はそれほど大きくないので、フレームワーク全体を学び直す必要はない。“大部分の開発者は、依存関係を更新して再ビルドを実行できるはずです”と、AngularチームのメンバであるRob Wromaid氏は述べている。
バージョン3は存在しない。すでにバージョン3.XになっていたAngularルータのバージョンに合わせるため、スキップしてバージョン4になったのだ。
新機能は多数あるが、ほとんどが小規模なものだ。その中で大きな改善点のひとつは、Angularのアヘッド・オブ・タイム(AOT)コンパイラのコード生成方法に関するものだ。Angular TeamメンバのTobias Bosch氏が設計資料に、わずか245バイトのソースコードしか持たないテンプレートが7,951バイトのTypeScriptコードにコンパイルされた、つまり32.5倍になった、ということを書いている。AOTコンパイラの使用はAngularパフォーマンスにプラスの影響を与える反面、ブラウザに配信されるペイロードは巨大なものだったのだ。Bosch氏は自身のプロトタイプで、コンパイル後のTypeScriptコードを1,833バイトにすることに成功した。これでもソースに比較すれば7.5倍大きいが、修正前の処理結果の25%未満になっている。バージョン4.0を発表する記事にGoogleは、開発者にとって劇的な改善になるはずだ、と書いている。
AOTが生成するコードを、内部的に変更しました。これにより、ほとんどの場合において、コンポーネントの生成コードサイズが約60%削減されます。テンプレートが複雑になるほど、削減量は大きくなります。RC(Release Candidate)期間中に多くの開発者から、4に移行することで製品のバンドルが数百キロバイトのオーダで削減できたという報告を聞いています。
Hacker Newsには、“v2からv4へのアップグレードは簡単だ”という開発者たちの書き込みが上っている。Angular開発者のCory Rylan氏もInfoQに、“Angularを試すには絶好のチャンスです。びっくりするほどパフォーマンスがよくなりました!”と話してくれた。
このバージョンのAngularでは、TypeScriptもバージョン2.1に移行している。これまではTypeScript 1.8が使用されていて、後方互換性がなかった。その他の重要な変更点としては、
- アニメーションをパッケージ自体に内包した
- Angular Universal(サーバ側でのレンダリング)のAngularとの同期が回復し、Angularチームがメンテナンスするようになった
- テンプレートのソースマップ
- * ngIfと* ngForの改善
今回のリリースでAngularチームは、6か月毎にリリースするという約束を果たした。次の(5.0への)メジャーバージョンアップには、2017年9月から10月の間に到達する予定である。全体的なリリーススケジュールはGitHubで確認可能だ。
この記事を評価
- 編集者評
- 編集長アクション