2011-09-27 82 views

回答

4

Google closure,是一组JavaScript库和一个JavaScript解析器,用于编译和压缩您的javascript。有一些可以嵌入到构建/部署周期的Google闭包工具。

谷歌飞镖出现(从目前的稀少信息)是JavaScript的语言替换,与编译为JavaScript的选项。这类似于google GWT现在用java编写的(也就是说,你编写java并编译为javascript,我相信这个编译过程也使用闭包编译器)。

这就是为什么GWT + Closure团队已经转移到Dart项目上 - 开发人员可以将客户端dart应用程序部署到不直接支持dart的浏览器(例如,非铬)。将dart交叉编译为javascript(与GWT将java编译为javascript相同)是Google解决此问题的方法。

+0

啊,我明白了,Google Dart更像ClojureScript,因为Google Dart会将其编译为Google Closure代码? – Zubair

+1

我认为您需要等到Google宣布它了解其具体内容。 – John

+0

只是一个更新:Dart to JavaScript编译器dart2js不会发出Closure代码。它发出香草JavaScript(当然,优化和缩小:) –

2

飞镖主题演讲应该很快就会发生(明天?),但我想我也会添加这个从Dash email摘录。

大型Google Apps的现有代码库如何?他们不需要重建一切以利用Dash吗?

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

2

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

+0

只是一个更新,dartc已被dart2js取代:http://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools -dart2js.html –

2

我相信Dart是从第一次开始就设计了Google Closure Compiler的。 的核心原则基本达特可选的类型系统是:

“分拆类型的注释不应该影响生产模式的程序行为”

与谷歌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