能不能替代這個問題其實對開發(fā)者能有多少影響呢?首先排除掉Go,這個東西是做服務(wù)端的,定位也是系統(tǒng)編程。主要說說dart:
dart這個語言最關(guān)鍵的地方其實是兩個:1.相似性;2.dart2JS。
相似性:
google 搞的這個dart你會發(fā)現(xiàn)如果有java,c#,javascript背景的開發(fā)人員,那么這個語言幾乎是0學(xué)習(xí)負(fù)擔(dān),直接拿來就能用,做項目。里面有很多好的特性都是你非常熟悉的,語法難度(目前)介于java和c#之間,可選類型的動態(tài)語言,彌補動態(tài)語言tooling,靜態(tài)分析上的短板(盡管這個可選類型爭議很大,尤其是純粹從設(shè)計語言上的角度上去看)。
dart2JS:
dart vm將來會內(nèi)置到chrome中,但其他瀏覽器可能不會支持它,所以dart2JS就顯得很重要,這樣dart寫的程序可以在所有瀏覽器上執(zhí)行,至于性能和體積等等問題這個變成了編譯器優(yōu)化的部分了,純粹的技術(shù)上問題,沒有什么不可逾越的障礙了(例如讓其他瀏覽器接受dart vm這種非技術(shù)性障礙,這個很難逾越),只需要時間去完善。最終有點類似于手寫匯編和編譯器生成的匯編哪個效率高的問題。
有了語法上的高度相似性和dart2JS,那么dart失敗與成功其實不是那么重要了,因為google最終的目的不是讓大家都一定要去使用它的語言,而是要讓web進(jìn)化的更快一些,或者說有一個比現(xiàn)在更好的javascript快點的到來,這才是它最想要的結(jié)果,類似于它的什么高速光纖等等,都是這個套路,讓你更加依賴 web,因為web是它盈利的關(guān)鍵入口。
2011年google內(nèi)部有郵件說明過為啥要做這個語言?他們有2套方案會一直并行的去做下去:
1.v8團隊繼續(xù)優(yōu)化js引擎,一起參與進(jìn)化javascript語言;
2.發(fā)明一個新的語言(dart),最終替代JS。
方案1風(fēng)險小但進(jìn)展太慢它等不及,方案2風(fēng)險大但回報也大。最終他們決定同時執(zhí)行兩套方案。
而 dart的開發(fā)者大部分就是v8,chromium的團隊人馬,dart中很多新東西都和v8有關(guān)聯(lián),dart一些新的特性未來可能也會被 ecmascript 接受成為未來js的新標(biāo)準(zhǔn),所以最終無非就是兩個結(jié)果:要么dart失敗了,但dart里很多好的東西都被js吸收了,js煥然一新;要么dart成功了,代替掉了js。無論是哪種結(jié)果,web的進(jìn)化進(jìn)程都被加快了,這個就是google的真正目的(有點像它做android但卻不直接通過這個系統(tǒng)本身來賺錢)。
所以說:這個語言在設(shè)計中【保持相似性】和【dart2js】是很關(guān)鍵的兩個方面。那么你覺得它能否代替掉JS對你影響大么?也不會出現(xiàn)什么你學(xué)了很久的東西未來某天發(fā)現(xiàn)沒用武之地了這種情況,所以該用js的繼續(xù)接著用,想嘗試dart的也別擔(dān)心別的瀏覽器跑不了,也不用擔(dān)心要從頭開始學(xué)一門新的語言的負(fù)擔(dān),因為它里面大部分東西都是你早都掌握了的。
相關(guān)熱詞搜索:dart2JS dart javascript語言