我刚刚开始使用 Google Closure,而且我还听说过 Google Dart,它看起来非常相似。两者有什么关系?
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 解决此问题的方法。
Dart 主题演讲应该很快就会发生(明天?),但我想我也会添加Dash 电子邮件的这段摘录。
大型 Google Apps 的现有代码库如何?他们不是必须重建一切才能利用 Dash 吗?
Dash 交叉编译器应该能够采用类型化的闭包代码(有一些限制)并转换为 Dash。尽管迁移过程不会完全自动化,但它应该会使迁移到 Dash 代码库更容易一些。
目前,DartC 使用闭包编译器进行优化构建(--optimize)。对于正常的编辑/刷新周期,它直接生成 javascript 为开发人员获得一些速度。优化(和关闭阶段)更多的是打包和部署步骤。
我相信 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