Angular、TypeScript、Javascript、AtScript、Dart、なんてこった (Angular.ts.js.at.dart.wtf)

![dart_angular.png](https://qiita-image-store.s3.amazonaws.com/0/37980/8606eae6-dfa1-eaa6-274e-0ee6375407d2.png)
#はじめに
このブログは[Kevin Moore](http://www.blogger.com/profile/08411979841477351623 "Blogger: ユーザーのプロフィール:  Kevin Moore ")さんの[投稿: Angular.ts.js.at.dart.wtf](http://work.j832.com/2015/03/angulartsjsatdartwtf.html?m=1 "Kevin@Work: Angular.ts.js.at.dart.wtf")を本人の許諾を得て日本語に翻訳したものです。

#本文
既に[Angularが今後TypeScriptを利用する](http://blogs.msdn.com/b/somasegar/archive/2015/03/05/typescript-lt-3-angular.aspx "TypeScript <3 Angular - Somasegar's blog - Site Home - MSDN Blogs")という話を聞いたかもしれません。

このニュースはAngularとDartの関係について[様々な疑問](https://twitter.com/jponge/status/573770185338920960 "Julien PongeさんはTwitterを使っています: "Friday question: why is the almighty #AngularJS betting on #typescript rather than, say, …#dartlang?"")を呼び起こしています。

この疑問に答えてみましょう。

###まずは[Angular 1](https://github.com/angular/angular.dart "angular/angular.dart · GitHub")

Angular 1 JS版は超有名です。非常に多くの人が利用しています。素晴らしい。

[Angular 1 Dart](https://github.com/angular/angular.dart "angular/angular.dart · GitHub")はAngular 1 JSの手作業による移植です。これはJS版フレームワークのフレーバーに追随しようとしています。しかし、既にAngular 1 Dartを多くの人が利用(特にGoogleの中で)していますが、同じフレームワークの2つのバージョンを2つの言語でメンテするのはしんどくなってきています。

###Angular 2の出番

[10月に投入](http://angularjs.blogspot.com/2014/10/ng-europe-angular-13-and-beyond.html "AngularJS: ng-europe, Angular 1.3, and beyond")されたAngular 2はAtScriptで記述された、より良く、より速いフレームワークです。ここで、AtScriptは当初からTypeScriptの拡張です。

**重要ポイント: Angular 2はこれまでもずっとTypeScriptで構築されてきました。**

[今回のAngular/TypeScriptに関するアナウンス](http://blogs.msdn.com/b/somasegar/archive/2015/03/05/typescript-lt-3-angular.aspx "")は驚くべきニュースです。AtScriptに追加された機能がTypeScriptに取り込まれつつあるのです。

**重要ポイント: AtScriptはTypeScriptに統合されます。唯一の言語を考慮すれば良いのです。**

TypeScriptによってAngularチームはJavascript向けとDart向けに同時にフレームワークを構築できます。
両言語向けの出力は[Angular Travis](https://travis-ci.org/angular/angular "Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community")のWebページでチェックしてください。

**重要ポイント: Angular 2ではJavascriptとDartの**両方**がすぐに使える形で標準サポートされます。**

ここで残った**大きな疑問:**
###なぜ単にDartでAngular 2を構築しないのか?

**答え:** Angularチームは素晴らしいフレームワークをJavascriptとDartの**両方**に届けたいから。

Dartは数々のブラウザに向けに良いJavascriptを出力しますが、我々は再利用可能なJavascriptライブラリを生成するために働いています。

Angularチームは再利用可能なライブラリを生成する必要があるのです。

そういうことです。

私の個人的な目標の一つにDartをJSライブラリ生成に適したものにすることがあります。4月の[Dartサミット](https://www.dartlang.org/events/2015/summit/ "Dart Developer Summit 2015")で更に議論をするつもりです。ほら、[参加申し込み](https://dartdevelopersummit.eventfarm.com/tokens/sessionAllocate?tr=IWPWDFXVf0sit7DZWK7xT7iewIAn8XugkKDnP1IvrBdl8gKvrisLPa "Dart Developer Summit")しては?

それまでは、[Angular2 Dartパッケージ](https://pub.dartlang.org/packages/angular2 "angular2 2.0.0-alpha.12 | Pub Package Manager")のアルファ版をチェックしてみてください。

[AngularのGitHubプロジェクト](https://github.com/angular/angular "angular/angular · GitHub")もチェックしてください、もしDart向けAngularまたはJavascript向けAngularをいじってみたければ...おっと両方でした。

バグレポート、機能要求、ソース提供を待ってます。

Dartアナライザを使ってAngularのソースを[直し](https://github.com/angular/angular/commit/fb5b168b1928769d5680d78243f7e17e6e4a9457 "chore: Remove unused imports and enable checks for unused imports as par... ·  fb5b168 · angular/angular · GitHub")[まくる](https://github.com/angular/angular/commit/fa259659395cf9f5b5f754af0c145302cafd9385 "chore: Remove unused imports ·  fa25965 · angular/angular · GitHub")ことにはまってます。いいねこれ。

ハッピーハッキングを! (FUDが20%減った今こそ)

Posted by [Kevin Moore](https://www.blogger.com/profile/08411979841477351623 "Blogger: ユーザーのプロフィール: Kevin Moore") at [00:41](http://work.j832.com/2015/03/angulartsjsatdartwtf.html "")