5

我刚刚开始使用 Google Closure,而且我还听说过 Google Dart,它看起来非常相似。两者有什么关系?

4

4 回答 4

4

Google 闭包是一组 javascript 库和用于编译和压缩 javascript 的 javascript 解析器。有一些谷歌关闭工具可以内置到你的构建/部署周期中。

Google Dart 似乎(根据目前的信息不足)是 javascript 的语言替代品,具有编译为 javascript 的选项。这类似于google GWT 现在对java 所做的(即,您编写java 并编译为javascript。我相信这个编译过程也使用了闭包编译器)。

这就是 GWT + Closure 团队被转移到 Dart 项目的原因——开发人员可以将客户端 dart 应用程序部署到不直接支持 dart(即非 chrome)的浏览器,这对于采用 Dart 至关重要。dart 到 javascript 的交叉编译(与 GWT 将 java 到 javascript 的方式相同)是 Google 解决此问题的方法。

于 2011-09-28T07:09:07.297 回答
2

Dart 主题演讲应该很快就会发生(明天?),但我想我也会添加Dash 电子邮件的这段摘录。

大型 Google Apps 的现有代码库如何?他们不是必须重建一切才能利用 Dash 吗?

Dash 交叉编译器应该能够采用类型化的闭包代码(有一些限制)并转换为 Dash。尽管迁移过程不会完全自动化,但它应该会使迁移到 Dash 代码库更容易一些。

于 2011-10-10T05:44:49.410 回答
2

目前,DartC 使用闭包编译器进行优化构建(--optimize)。对于正常的编辑/刷新周期,它直接生成 javascript 为开发人员获得一些速度。优化(和关闭阶段)更多的是打包和部署步骤。

于 2011-10-11T14:34:52.037 回答
2

我相信 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
于 2011-10-12T13:34:27.510 回答