標籤:

dart在中國沒人關注嗎,這個也是全端語言,然而比js優秀多了啊?

web端的dart2js,angulardart;

ios/android的flutter

伺服器端的dart vm

寫起來不是舒服很多為何似乎沒人關注甚至幾乎沒幾個人知道呢?


自己用dart有一段時間了,公司項目用的ts,對兩者都有一定的了解。

dart為什麼沒火?

  1. dart的庫相對js來說比較少,而ts可以直接使用js的庫。雖然dart也能調用js,但用起來不太方便啊,還要自己轉化d.ts文件。等到有辦法簡單使用d.ts,我相信用dart的人會多很多。
  2. 在dart中的保護核心代碼,唯一的方式就是要先dart2js,再在dart中調用js介面。但在vm中怎麼辦?(修改:後面了解到nodejs除了混淆也沒有找到比較好的保護代碼的方式, 在vm中dart可以生成快照)
  3. fluter真的有那麼好?剛開始我也很期待的說……可是太新了,什麼都沒有,到目前也就適合做一下app應用,想做遊戲?還要自己開發個引擎?所以還是期待後續發展吧

雖然如此,但dart還是有很多不錯的地方

1、編程體驗比較好。

  • 其中的Future讓編程回歸線性,在某些場合,例如初始化過程會很整潔,而事件回調的方式多了會很亂。
  • ts需要編譯成js,dart可以直接在vm中運行。而且自帶測試框架,調試工具,用起來很方便。開發調試效率都非常高。(話說egret的編譯速度真的好慢……項目大了一次編譯差不多一分鐘)

2、可以使用強類型的方式,編譯成js會進行更高效的優化。

3、js使用v8引擎,已經到極限了。而vm還有很多優化空間。

4、tree-shaking讓代碼最小化,沒用到的代碼不會編譯進js。這是ng2-dart vs ts的一個對比,大家可以參考下antonmoiseev/ng2-dart-vs-ts

5、全新的操作系統fuchsia採用了dart作為UI層的語言,flutter作為框架。在不遠的將來,一定會有所作為。希望不要等太久:)


這兩天關注了一下,簡單說一下我的看法。

首先dart2js這東西想要在正式產品裡頭用是絕對絕對不可能的,為什麼?因為我親自試了官方首頁上的那段代碼編譯成js,先不說默認附帶270k的lib,且說那while(true)這種代碼就已經爆炸好么。

fultter我也花了時間看了文檔,因為我是win系統沒法用,就沒折騰,只能看文檔。在文檔裡頭提及的東西,很精簡,但絕對不是官方想要的那種精簡,因為它並沒有什麼創新性的東西在裡頭,只是項目還在處於一個搬運經典體系的階段,不完善所以精簡,這是我從文檔裡頭看出的。

唯一能用的就是dart VM。我覺得dart這東西的語法可以說是ES6+typescript(其實近兩年出來的編程語言都這樣子,都是互相模仿,ES6也是模仿別人,只是大家在互相模仿時又加入了一些自己的東西)。很不錯,和Swift一樣都是現代編程語言最好的那些東西。但dart VM有多強我沒具體測試,我只是到YouTube上面看了一些企業實戰後的演講而已。

說一說要火?是的,大家都想靠js火一把,但現在不完善就是不完善,編譯成js我上面也說了正常人是不會用的,就算官方千方百計地內部團隊協作來支持polymer和angular2,但取代js目前來說是做不到的。不過也看到了Google對dart語言的野心,畢竟是未來系統級語言,可目前來說,它並沒有能理由來讓「大家」真正地學它用它。

美好歸美好~

這幾年Google進軍語言屆,想打通瀏覽器和系統的屏障。Chrome OS、polymer和angular2、dart、fuchsia,這些都是棋子,但目前來說還沒有真正到達成勝勢的時候。

話說回來,dart要火,得有個真正比別人好的特長以及對應的平台才行啊。不然別人憑什麼用一個只有夢想的語言?


如果說從 JavaScript 轉化到 Dart 沒有任何額外的收益,或者工資沒有任何提升的話,那麼我為什麼要去學它?

不如閑暇之餘多學一門自己喜愛的語言


推薦閱讀:

Flutter 特性及使用體驗
[鏈接] Dart-on-LLVM

TAG:Dart |