Google Closureを使い始めたばかりですが、非常によく似ているGoogleDartについても聞いたことがあります。2つはどのように関連していますか?
4 に答える
Google クロージャは、javascript ライブラリのセットと、javascript をコンパイルおよび圧縮するための javascript パーサーです。ビルド / デプロイ サイクルに組み込むことができる Google クロージャー ツールがあります。
Google Dart は (現在の乏しい情報から) JavaScript にコンパイルするためのオプションを備えた JavaScript の言語置換であるように見えます。これは、Google GWT が現在 Java で行っていることと似ています (つまり、Java を記述し、JavaScript にコンパイルします。このコンパイル プロセスもクロージャ コンパイラを使用していると思います)。
これが、GWT + Closure チームが Dart プロジェクトに移行した理由です。開発者がクライアント側の Dart アプリケーションを、Dart を直接サポートしていない (つまり、Chrome 以外の) ブラウザーにデプロイできることが、Dart の採用に不可欠です。Dart から JavaScript へのクロス コンパイル (GWT が Java から JavaScript への変換と同じ方法) は、これを解決する Google の方法です。
ダート基調講演はまもなく(明日?)行われるはずですが、ダッシュのメールからの抜粋も追加したいと思いました。
大規模なGoogleアプリの既存のコードベースはどうですか?ダッシュを利用するためにすべてを再構築する必要はありませんか?
Dash Crossコンパイラは、型指定されたクロージャコード(いくつかの制限付き)を取得してDashに変換できる必要があります。移行プロセスは完全に自動化されるわけではありませんが、Dashコードベースへの移行がいくらか簡単になるはずです。
Dart は最初から Google Closure Compiler を念頭に置いて設計されていたと思います。Dart のオプションの型付けシステムの根底にあるコア原則は次のとおりです。
「ストライピング型注釈は、本番モードでのプログラムの動作に影響を与えるべきではありません」
これは、Google Closure のコメントベースの型注釈システムと非常によく一致します。
http://www.dartlang.org/articles/optional-types/
bar(int n) { return n *2;}
...
bar(3.2); // returns 6.4 in production, but fails in checked mode
現在、DartC は最適化されたビルド (--optimize) にクロージャ コンパイラを使用しています。通常の編集/更新サイクルでは、javascript を直接生成して、開発者の速度を向上させます。最適化 (および閉鎖フェーズ) は、パッケージ化と展開のステップに近いものです。