![](https://hfnxjk.com/statics/images/logo.png)
Angular 2即將發(fā)布最終版本之時,項目宣布了又一大改變點。項目中將不再使用把TypeScript編譯到JavaScript和Dart,Dart的部分將成立專門的團隊進行負責,分離出其自己的代碼庫。
根據(jù)Angular博客以及Dart News的報道,這次分離將有利于Dart開發(fā)者以及JavaScript開發(fā)者。
Dart在Google的一些關(guān)鍵項目中扮演重要角色,Angular團隊努力提升以滿足這些需求,以及廣大的JavaScript社區(qū)的需求。最初,將TypeScript編譯為JavaScript和Dart的想法是因為在Angular 1中Dart還并不是這么普及。將一個簡單的語言轉(zhuǎn)換為另外兩個語言,可以滿足開發(fā)者對于語言多樣性的要求。在實踐中,這會造成項目的一些問題,Naomi Black說道:
盡管這個輸入單一來源輸出多語言的方式在理論上可以運作,但是在實際中新的內(nèi)容很難加入到項目中來。即使是簡單的變化也會在跨語言兼容性的問題下變得復雜起來,并且有些變化只能由理解整個編譯過程,并熟悉兩種目標語言的人來完成。
無論你使用哪種語言,模板語法不會改變。根據(jù)Black所述,API“在合適的地方”將是相同的。然而,這就代表著將來的功能不能在兩種語言上自動實現(xiàn)。比如說,新的Angular Dart團隊宣布他們將發(fā)布為Angular 2搭建的Material Design庫,這已經(jīng)在Google的產(chǎn)品中使用了。這僅僅用Dart寫了,因此在JavaScript中不能使用。為TypeScript搭建的Angular Material庫也只將在其中使用。
Dart社區(qū)對這個舉措的反應非常積極。Google軟件工程師Kasper Lund評論說Angular Dart將變得更好:
Dart能迅猛發(fā)展歸功于它搭建了真正適合的、關(guān)鍵的應用程序。選擇使用Dart和Angular開發(fā)應用程序的人,如果使用Angular 2 for Dart就可以獲得更快更好的用戶體驗。
TypeScript和JavaScript的開發(fā)者都將非常歡迎如果Angular 2能迅速發(fā)布。Hacker News用戶zoechi評論說這個組合將放緩Angular的進展:
這個組合(TS+Dart)的推出會放慢Angular的開發(fā),這個過程非常痛苦,因為開發(fā)人員需要掌握這兩種語言。要實現(xiàn)將所有的內(nèi)容都翻譯為另外一個語言是非常困難的,并且這樣做可能會導致兩種語言各自的優(yōu)勢不能體現(xiàn),兩個版本的各自優(yōu)勢受到了限制。
用戶可以在GitHub上獲取最新發(fā)布的Angular 2 for Dart 2.0.0-beta.18版本。TypeScript/JavaScript的版本目前更新到2.0.0-rc.4。
查看英文原文:Angular 2 Split, Dart Codebase Separated