(日本語訳)ng-europe, Angular 1.3, and beyond

AngularJS 公式ブログの記事 ng-europe, Angular 1.3, and beyond を日本語訳しておきました。


先週、パリで開催した ng-europe において、Angular の過去、現在、そして未来について発表しました。このブログポストでは、重要なポイントとお知らせについてまとめています。

Angular 1.3

リリースしたばかりの新しい AngularJS 1.3 では、AngularJS 1.2 には無かった多くの機能と改善が含まれています。

  • パフォーマンス:DOM 操作や digest など多くの処理が 3 – 4 倍高速化し、アプリケーションが軽快に動作します。
  • フォーム:シンプルな API となり、フォームバリデーションのコードを短く記述できます。
  • ARIA サポート:ngAria により、スクリーンリーダーなどの支援ソフトウェアをサポートする適切な ARIA 属性を追加・削除できます。
  • Material Design:ユーザインターフェイスデザインとインタラクションのための Google’s specification をほぼ完全に機能するよう実装しています。詳しくは material.angularjs.org で。

Web アプリケーションを実装しているなら、このバージョンを使ってください。Angular 1.x で構築された Google の 1,600 を超えるアプリケーションで、長期間にわたってこのバージョンを最上位としてサポートしていくことをコミットしています。

Angular 1.x で予定していた新機能と breaking changes については、一部の例外を除いて 2.0 に先送りし、新しい設計をベースに取り組んでいきます。PRs(プルリクエスト)のレビューと issues への返答を続けてはいますが、1.x については、機能よりも安定性、セキュリティ、性能をより重視していきます。

Angular 1.2 をお使いであれば、コードを 1.3 に移行する方法について migration instructions日本語)を確認してください。

From 1.3 to 2.0: Angular’s Next Step

1 月に開催した ng-confkeynote で、Angular 2 の計画について発表しました。それ以降の数か月にわたり、Angular にとっての次の進化となるステップについてブレインストーミングを繰り返してきました。3 月にはデザインドキュメントで考えを発表し、フィードバックから Angular がどう使われ、どう使いたいと考えられているかを確認し、様々なアプローチ、プロトタイプ、ベンチマーク、デザインを繰り返し、ベストを求めてきました。

先週の ng-europe の場で、このリサーチとプロトタイプによる Angular 2.0 のビジョンについて発表し、Angular が本物の Angular(DI、HTML ベースのテンプレート、ディレクティブ、テスタビリティ)となることを見ていただけたと思います。一方で、Angular を近年の Web プラットフォームのシフト(web components や module system など)に適用させ、Angular を著しく高速化して使いやすくするためには、1.x からの段階的なステップでは実現できず、それに伴うデザイン変更が生じることも見ていただきました。

具体的な変更点:

  • Angular 1.x の controllers と templates を包含する統一されたコンポーネントモデルにより、概念 (concepts) と定型 (boilerplate) を減らして再利用性を高める。
  • scope の概念を見直してシンプルでわかりやすくし、コンポーネント間の責任分担を改善。
  • モジュール化されたモバイルファーストなデザインで、エンタープライズレベルのデスクトップアプリケーションのニーズまでスケール。 – 世界人口の 50 % を超える人々が、デスクトップではなくモバイルでインターネットに接続しており、モバイル向けのアプリケーションを開発しやすくしたいと考えています。一方で、エンタープライズ分野ではデスクトップ Web アプリケーションの重要性も残り続けます。
  • Web Components サポート。1.x での Web プラットフォームについての前提はもはや有効ではなく、対応させるために Angular を変更していきます。
  • ES6 (with easy transpilation to ES5) で構築。つまり、現在のブラウザで未来の JavaScript のコードを書き始めることができます。あるいは、ES5 で Angular 2 アプリケーションを実装することもできます。
  • AtScript を導入。TypeScript シンタックスと ES6 を拡張し、実行時の型とアノテーションを追加することで、大きなチームが大規模なアプリケーションを構築し、ドキュメント化することを支援します。ES6 と同じように、アプリケーションの構築に AtScript は必須ではありません。
  • Angular は jqLite や DOM ラッパーに依存しない。DOM は 2009 年以来大幅に改善しており、AngularJS がラッパーに依存する必要はなく、ラッパーを無くすことでパフォーマンスも向上します。必要であればディレクティブに jQuery や他の DOM ライブラリを使うこともできます。

これらのアイデアの多くは、Angular 開発者とのディスカッションによるもので、ディスカッションに加わってくださった開発者の方々にあらためて感謝します! 安定と性能を重視した AngularJS 1.3 をリリース日本語)した今、Angular 2.0 の構築に向けて進んでいきます。

What does this mean for me?

Angular コミュニティこそが、Angular を素晴らしいものにしています。2.0 の計画を早期に共有することで、コンセプトから実際のコードにしていくためのディスカッションに、多くの方々が参加していただけるようにしています。開発者の方々からの協力を必要としており、考えをお伺いできることを楽しみにしています。GitHub で issues を発行していただくか、Twitter (Brad, Igor, Brian, Jeff) や Google+ でご連絡ください。ミートアップにお越しいただいたり、ミーティングノートのフォロー・コメントもお願いします。

When can I use Angular 2.0?

現在の実験的な状態にある Angular 2.0 であれば、GitHubミーティングノートでフォローしていただけます。2.0 のコードで何かを構築するには早すぎ、プロジェクトはまだ本当に初期の段階です。まだリリース日を発表できるような状態ではありませんが、初期のバージョンを少しでも早くリリースできるよう進めています。

How can I learn more about Angular 2.0?

まだ非常に初期の段階ですが、まず ng-europe (when they are available) のビデオを見ていただくことから始められるのが一番です。特に、2 日間それぞれの Keynote と、Angular 2 Core のセッションです。

時間を掛けて、より深い内容を見ていただけるなら、すべてのデザインドキュメントとリサーチに目を通してみてください。

コードは GitHub の angular/angular リポジトリにありますが、まだ初期の段階であり、数か月のうちに続々と増えていくことになります。

最後に、パートナーによって公開されているリソースについても確認してください。ES6 と Angular 2.0 についての TypeScript のブログ記事や、TraceurEcmaScript 6Web Components です。

What about Migrating from 1.3 to 2.0?

Angular 2 のゴールは、既存 API との後方互換性に縛られることなく、Web アプリケーションを構築するための最高のツールセットにすることです。Angular 2 の最初のバージョンに合わせて、Angular 1 ベースのアプリケーションからの移行パスについての作業を始めます。

Angular で Web アプリケーションを実装するために、たくさんの時間を投資して学習してくださっていることを知っています。核となる概念のほとんどを維持していきますので、Angular 2 においても同じ知識を活かして短期間で熟練していただけます。

What’s next?

ng-europe は Angular コミュニティにとって素晴らしいイベントでした。プレゼンテーションやデモは素晴らしく、またそれ以上に、通路などで交わされたすべてのインフォーマルな会話が大切なものでした。そして今、発表したアイデアをリアルなものとしていくために、ご参加ください。2.0 が開発中の間は、Angular 1.3 で素晴らしいアプリケーションを構築してください。