Angular 2の最終リリースを間近にして、プロジェクトはもう一つ意外な展開を発表した。TypeScriptを使ってJavaScriptとDartにコンパイルする代わりに、Dart部分を専従チームによるDartのためのコードベースにスピンアウトさせるのだ。
Angular BlogおよびDart Newsの発表によると、この分離はDartデベロッパーとJavaScriptデベロッパー両者のためだという。
DartはGoogle内部のクリティカルなプロジェクトで使われており、Angularチームは彼らの要求と、それよりはるかに大きなJavaScriptコミュニティの要求を満たそうとしてきた。Angular 1におけるDartは必要とされるほど注目を集めていなかったため、当初、TypeScriptをJavaScriptとDartにコンパイルするというアイデアが採用された。1つの言語を2つの別の言語にトランスパイルすることで、両者の好みを満たせると考えたのだ。ところが実際には、両方のプロジェクトを苦しめることになった。Naomi Black氏はこう語る。
このシングルソース・マルチランゲージというアプローチは、理論上はうまくいくのですが、実際には新しいコントリビュータがプロジェクトに参加するのを非常に困難にしました。言語間の互換性問題のため、ちょっとした変更であっても途端に複雑になってしまうのです。変更の多くは、コンパイルプロセス全体と両方の言語ターゲットを理解している人しかできなくなりました。
どちらの言語が好みであっても、テンプレート構文は変わらないだろう。Black氏によると、「それが適切であるなら」APIは同じままになるという。ただし、これが意味するのは、今後の機能はどちらでも自動的に使えるわけではない、ということだ。例えば、新しいAngular Dartチームは、Google社内ですでに製品に使われているAngular 2向けのMaterial Designライブラリをリリースすると発表した。これはDartだけで書かれており、JavaScriptからは使えない。TypeScript向けのAngular Materialライブラリは独自に継続される。
今回の発表に対して、Dartコミュニティは非常にポジティブな反応を見せている。GoogleのソフトウェアエンジニアKasper Lund氏は、Angular Dartはずっと良くなるだろうとコメントした。
Dartは本当にクリティカルなアプリを構築するのに使われており、これから成長していきます。Angular 2 for Dartをより高速で良いものにすることで、こうしたクリティカルなアプリにDartとAngularの組み合わせを採用するのが増えていくでしょう。
TypeScriptならびにJavaScriptデベロッパーは、これがAngular 2を加速するのであれば歓迎のようだ。Hacker Newsユーザーのzoechiは(TypeScriptとDartの)組み合わせがAngularの進みを遅くしていたとコメントした。
(TypescriptとDartの)組み合わせがAngularの開発を遅くしており、コントリビューションには両方の言語知識を必要として苦痛でした。バラバラに開発するのには大きな欠点がありますが、私は決定に納得しています。全てを別の言語に変換できるように実装するのは、本当に苦痛です。その実装は両者の共通項に制限され、それぞれの言語の利点を活かすことができません。
新たに自由の身となったAngular 2 for DartはGitHubで公開されており、現在のバージョンは2.0.0-beta.18
だ。TypeScript/JavaScriptバージョンは現在2.0.0-rc.4
となっている。
Rate this Article
- Editor Review
- Chief Editor Action