AngularチームがAngular 2で最初のベータ版をリリースした。 最終リリースまでに完了すべき点がいくつが残っているが,今回のベータ版は開発者に対して,アプリケーション構築のための確定した基盤を提供するものだ。
Angular 2までの道程は長く険しかった。最初に報告した2014年3月以来,InfoQではその進展状況を追跡してきた。用語体系や概念で共通する一部を除くと,Angular 1アプリで仕様されていたビルディングブロックは,その大部分がAngular 2には存在しない。コミュニティがこれにどう反応するかは,今後を見守らなければならないだろう。
リリース発表のブログ記事ではAngularのマネージャであるBrad Green氏が,“ベータというのは,Angular 2を使った大規模アプリケーション開発の大半に成功が見込めるということを,私たちが確信するに至ったという意味です”,と述べている。
Angular 2のアルファは55版を重ねたが,それに伴って開発者たちは,互換性のない変更の繰り返しに対処を続けてきた。ベータ版からは,大きな変更がこれまでより注意して扱われるはずだ。単に機能を変更するのではなく, 段階的な導入が実施されるようになるだろう。Angular Airでのインタビューでは,Misko Hevery氏がそのプロセスについて説明している。
今後,重要な変更を行う場合には,非推奨の段階を確実に行っていくようになります。つまり,両方が動作する期間を経た上で,旧機能を非推奨にするということです。”
Igor Minar氏が続ける。
互換性を失うような大幅な変更の予定はありません。ベータ版は私たちがフィードバックを吸収するための期間であり,Angular 2がどのように動作するのか,何ができて何ができないのかを確認してもらうための期間です。フィードバックに基づいて,変更を行う価値があるか[を問い],そうならば非推奨の段階を実施した上で,いくつかのAPIを廃止します。
ベータ版までに実施された最も大きな変更は,kebab-caseを廃止して,HTMLテンプレートをcamelCaseに移行したことだ。kebab caseは元々,ブラウザのHTMLパーザがすべてを小文字に変換してしまうことへの回避策だった。その後,別の目標を達成するために,Angularチームはテンプレートパーザを自身で開発しなければならなくなった。それに伴って,大文字と小文字の区別が可能になったので,HTMLのプロパティ名をJavaScriptの対応するプロパティと一致させることができたのだ。
改良段階という通常のベータ版の意味を超えて,Green氏は,リリースまでに仕上げたいと考えている項目を5つあげている。
- Angular 2のペイロードサイズ削減。
- Angular CLIを,開発プロセスを通じてエンドツーエンドで使用可能にする。
- より開発者指向のルート定義とComponent RouterへのリンクAPIの作成。
- アニメーションのサポート。
- 国際化とローカライゼーションのサポート。
“最終リリースの日程はフィードバックとその対処状況によって決定します”,とMinar氏は述べている。
Hacker Newsのディスカッションでは,ユーザ”segphault”が肯定的な意見を述べている。
Angular 2は,Angular 1.xの重大な問題点の多くに対処しています。 以前の混乱したサービスやファクトリやディレクティブに比較すれば,コンポーネントとカプセル化に関するAngular 2のアプローチは,はるかに清廉で簡潔です。Typescriptについては当初は疑問でしたが,一貫性のあるオブジェクトモデルとオプションの型安全が,Angular 2にとって大きなメリットであることが分かりました。Typescriptが障害になることはあり得ません。
Angular 2に関するより詳しい情報は,angular.ioまたはAngular GitHubリポジトリで公開されている。