2011-09-27 91 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