02.25 Dart 語言要崛起?谷歌官宣下一代操作系統 UI 編寫只支持 Dart

Fuchsia 技術選型,Dart 笑到最後

Android 和 Chrome OS 可能是谷歌最知名的 OS 項目,但實際上這兩年曝光量逐漸增大的是谷歌正在開發的第三個操作系統——Fuchsia。Fuchsia 是一個開源項目,類似於 AOSP(Android 開放源代碼項目),但 Fuchsia 可以運行各種設備,從智能家居設備到筆記本電腦和手機等等。它也被認為是建立在一個谷歌構建的名為“zircon”的全新內核之上,而不是構成 Android 和 Chrome 操作系統基礎的 Linux 內核。

近日谷歌 Fuchsia 網站上更新了一則“Fuchsia Programming Language Policy”的文檔,詳細解釋了 Fuchsia 項目在編程語言方面的選型考慮。據官方文檔披露,C/C++、Dart、Rust、Go 語言都是 Fuchsia 開發的候選語言,除了老牌編程語言 C 和 C++ 的江湖地位穩固得到了官方開發人員的認可以外,新興編程語言中,Dart 擊敗了 Rust 和 Go 語言,成為用戶 UI 界面的正式官方語言。

谷歌為什麼選擇 Dart?

優勢:

  • Fuchsia 的終端開發人員已經在使用 Dart;
  • Fuchsia 的大部分 UI 界面使用的是 Flutter,而 Dart 正是 Flutter 的官方語言;
  • 可以使用直線代碼編寫異步程序;
  • Dart 的開發效率高;
  • Fuchsia 項目有機會影響語言的演變;
  • Dart 語言提供了內存安全保證,從而降低了開發的軟件存在安全漏洞的風險;

劣勢:

  • Dart 使用垃圾回收機制管理內存,更加佔用資源;
  • Dart 具有大量的運行時環境;
  • 工具鏈強制在二進制大小、性能和啟動延遲之間進行權衡,這比工具鏈為其他語言提供的權衡更糟糕。

最終決定:

  • 支持面向非驅動程序的終端開發人員;
  • 最終用在 UI 界面編寫和非無限期運行程序中。

Flutter 為什麼要選擇 Dart 開發?

2011 年 10 月 10 日的 GOTO 大會上,谷歌的兩位工程師發佈了“Dart”語言,剛開始的定位是取代 JavaScript,但卻以 Flutter 的編程語言出道而被人熟知。由於是第一個使用聲明式 UI 的編程語言,也引發過很過爭議。

據瞭解,早期的 Flutter 團隊在選型時評估了十多種語言,最終選擇了 Dart,因為它符合他們構建用戶界面的方式。

更進一步,Dart 的諸多特性堪稱為 Flutter 量身打造:

  • Dart 是 AOT(Ahead Of Time)編譯的,編譯成快速、可預測的本地代碼,使 Flutter 幾乎都可以使用 Dart 編寫。這不僅使 Flutter 變得更快,而且幾乎所有的東西(包括所有的小部件)都可以定製。
  • Dart 也可以 JIT(Just In Time)編譯,開發週期異常快,工作流顛覆常規(包括 Flutter 流行的亞秒級有狀態熱重載)。
  • Dart 可以更輕鬆地創建以 60fps 運行的流暢動畫和轉場。Dart 可以在沒有鎖的情況下進行對象分配和垃圾回收。就像 JavaScript 一樣,Dart 避免了搶佔式調度和共享內存(因而也不需要鎖)。由於 Flutter 應用程序被編譯為本地代碼,因此它們不需要在領域之間建立緩慢的橋樑(例如,JavaScript 到本地代碼)。它的啟動速度也快得多。
  • Dart 使 Flutter 不需要單獨的聲明式佈局語言,如 JSX 或 XML,或單獨的可視化界面構建器,因為 Dart 的聲明式編程佈局易於閱讀和可視化。所有的佈局使用一種語言,聚集在一處,Flutter 很容易提供高級工具,使佈局更簡單。
  • 開發人員發現 Dart 特別容易學習,因為它具有靜態和動態語言用戶都熟悉的特性。

雖然以上功能並非 Dart 獨有,但它與 Flutter 的組合卻恰到好處,使其在實現 Flutter 項目時變得無比高效。

Dart 語言要崛起?谷歌官宣下一代操作系統 UI 編寫只支持 Dart

Dart & Flutter 版本時間表—— GMTC

前端開發,沖沖衝

有位騰訊的前端專家曾對我說,“前端十八個月難度翻一番”,他這一言道出了無數前端開發的心酸血淚:就沒見過哪個領域的技術更新換代速度有前端圈這麼快的!造輪子一時爽,一直造輪子一直爽,苦了前端開發一邊喊著“學不動了”,一邊含淚說出一句“真香”。

縱觀近年來大熱的新技術,基本上都能看到科技巨頭在背後力推的身影。每年的 Google I/O 大會上都可以看到移動、前端領域的新風向:

  • 2017 年 I/O 大會上,谷歌宣佈在其 Android Studio IDE 中支持 Kotlin;
  • 2019 年 I/O 大會上,谷歌宣佈 Kotlin 編程語言現在是 Android 應用程序開發人員的首選語言。
  • 對 Flutter 框架而言,2019 年 I/O 大會的更新更是重磅:新增新增 Web 和嵌入式目標平臺,走向全平臺制霸!

對於軟件開發行業來說,技術的實現只是成功中的關鍵一環,如何形成一個以某項技術為核心的龐大生態圈、良好的開發者社區和及時的維護同樣無比重要。可以看到 Flutter 目前的使用流行度越來越廣泛,各大廠的 Flutter 項目也正在穩步推進,未來對 Flutter 生態下開發人員的需求將進一步擴大。

所以,扶你起來,你還能學?


關注我並轉發此篇文章,私信我“領取資料”,即可免費獲得InfoQ價值4999元迷你書!


分享到:


相關文章: