2011年曝光的Dart語言曾經引起了很大關注,畢竟它系出名門Google,而且背後是V8引擎和Java Hotspot兩大虛擬機器的締造者Lars Bak,團隊裡還有Gilad Bracha(Java語言和JVM的核心之一),最近的文章表明,C#、LINQ和Rx的英雄Erik Meijer離開微軟後也參與了Dart的開發。他們這三人可都是荷蘭電腦科學圈真正的精英。Dart的雄心不言而喻:首先滿足Google內部團隊提升開發效率的需要,然後圖謀替代因為各方利益不一、發展緩慢的JavaScript,而且不僅在瀏覽器端,通過Dart VM,像NodeJS那樣統一前後端也是可能的(Node爆火與V8的給力有直接關係)。
但是今天Lars Bak與Kasper Lund的部落格“Dart for the Entire Web”卻表明,Dart語言的巨集大夢想已經破滅。文中表示:Dart VM內建到Chrome的計劃已經放棄,團隊將把精力集中到Dart到JavaScript的編譯工作上。
這意味著Dart將不太可能成為一門廣泛應用的獨立Web語言,取代JavaScript已不可能。
我們知道,Google推廣Dart最有力的武器就是Chrome內建,然後用Dart開發的應用相比其他瀏覽器裡的普通JavaScript應用能顯示出巨大的效能優勢,倒逼其他瀏覽器也引入Dart VM,並倒逼應用開發者更多地採用Dart。而今,這種計劃落空了。
之前Google內部的Angular團隊宣佈放棄自己的AtScript時,卻選擇轉投Dart的宿敵TypeScript,對Dart已經是一種打擊。
Google官方部落格表示,在Google內外Dart都有不少應用,其實是說我們還不會死。
他們最大的內部客戶之一是Google Ads,已經有上百萬行Dart程式碼,而且還在快速增長,會長期支援Dart。其他團隊還有Google Fiber、Google Express和Google內部的銷售團隊,都用Dart開發了關鍵業務應用。而且很多開發者是客戶端與伺服器端應用都用Dart開發。
Google之外有物聯網應用開發公司DGLogik,說如果不用Dart,團隊會翻倍才行。
Hacker News上,Clara.io的創始人Ben Houston對Dart和CoffeeScript等後JavaScript語言對推進JavaScript演進得更快所做出的貢獻,並舉例說型別系統和SIMD等特性已經被JavaScript新標準ES6和ES7採納。
而JavaScript之父Bredan Eich還是堅持其一貫直來直去的風格,針鋒相對:“誰說JavaScript標準受Dart很大影響了?”他逐條反駁Dart的貢獻,說除了SIMD和for迴圈有點功勞之外,其他都不算……而且,他對Google五年前採取的完全從零開始要取代JavaScript的策略顯然非常不滿。
歷史上,老王者漸漸暮氣纏身,而且由於多方利益糾葛,變革困難,急需新來者的挑戰。從這一點來說,Dart、CoffeeScript、TypeScript和Fantom等許多後JavaScript語言的意義很大。Bredan Eich雖然嘴上不服軟,但JavaScript和ES標準的演進在這些語言出現後明顯加快,卻是事實。
當然,凡事沒有絕對,如果老王者這時候還能改,及時跟上新來者的步伐,至少不拉開太多,新來者要想顛覆還是比較難的。Java和C#的故事正是如此。語言特性上,C#雖然一直領先於Java,但又沒有好到大家群起搬家的地步,加上C#原來繫結Windows,於是成也蕭何敗也蕭何了。而Dart,由於缺乏平臺的支援,相比JavaScript的優勢又在被漸漸蠶食,想取得C#的成就,恐怕很難了。
Lars Bak本身是做虛擬機器出身的,Dart VM專案並沒有停止,另一名團隊成員表示,VM團隊在全速前進,而且因為沒有了Chrome的負擔,專案反而更加輕快了。此外,Dart2js也在不斷改進當中。