Fuchsia 的開發語言政策與解讀

我在以前發佈過的 《Fuchsia 是什麼?Fuchsia OS 的將來如何?》 中介紹過 Fuchsia 的大致狀況,也收到了你們對於 Fuchsia OS 褒貶不一的評價,好比:編程

也有不看好將來的評論,好比:異步

其實這些評價都很正常,畢竟一個系統的成功,除了實力以外還受到「天時地利」的影響,可是這不影響咱們對它的關注,而 FuchsiaFuchsia Programming Language Policy 也能夠幫助咱們從另外一個角度去認識 Fuchsia 的策略與定位。async

Fuchsia Programming Language Policy

Fuchsia 目前主要支持的語言政策有 CC++DartRustGoPython,可是實質上主要的只有 CC++DartRust,其中:異步編程

  • C 語言支持被全部終端開發人員使用,可是 Google 不推薦使用 C 語言的新特性,而 C 通常是被用於底層內核開發、 ABI 接口、驅動和系統組件等

FuchsiaC 庫是根據 C11 標準編寫的(有少許例外,例如 unix signal support,與咱們的 CABI 並不特別相關),而且 C99 不會是兼容目標。工具

  • C++ 語言支持被全部終端開發人員使用,C++ 在 Fuchsia 源碼中被普遍使用

FuchsiaC 的頭文件應該和 C ++ 11,C ++ 14 和C ++ 17 標準兼容,而且 C 和 C ++ 接口不該混在一個頭文件中。開發工具

  • Dart 主要是面向非驅動的開發人員,主要用於界面和非永久運行的程序上,而目前 Fuchsia 的大多數用戶界面都是使用 Flutter 構建的。google

  • Rust 並非面向終端開發人員,雖然 Rust 在 Fuchsia 源碼中被普遍使用(除了 zircon 內核),可是目前 Rust 沒有開放出來,猜想多是 Rust 在 Fuchsia 上還不夠穩定,而且目前的終端開發者不須要直接使用到 Rustunix

  • Go 目前看來是後續不會被繼續在 Fuchsia 中使用,有點被拋棄的味道,目前僅僅還被用於 netstack 相關的代碼中,可是官方表示後續可能會遷移到其餘語言。code

Go 的資源佔用比 C++ 和 Rust 更多,並且編譯成本相對較高,運行時環境龐大,理念上不大符合 Fuchsia 輕量級的概念。cdn

  • Python 一樣不會被終端開發人員使用,支持 Python 3 且不兼容 Python 2.7 ,目前看來 Python 主要被用於構建,開發工具腳本上

總結看來 Fuchsia 上主要的開發語言是 C / C++ 和 Dart ,Google 是儘量地使用本身的親生「孩子」

Google 表示選擇 Rust / Dart 的理由是其 async / await 上對異步編程的強大支持, C / C++ 則是常年必備的高效語言,而從目前 Google 對於 Go 的態度上也能夠猜想 Fuchsia 的定位是更輕量級的系統 ,很大可能不會像現階段 Android 那麼「重」,至少不會是爲了替換 Android 而被推出

最後,從目前已知信息可知,大概有 21 個合做夥伴出如今 Fuchsia 的 Gerrit 中,它們主要來自 13 家不一樣的公司,其中 6 家目前是 Android 的製造商:

  • ARM
  • GlobalEdge Software
  • Huawei
  • Imagination Technologies
  • MediaTek
  • Oppo
  • Qualcomm
  • Samsung
  • Sharp
  • Sony
  • STMicro
  • Unisoc
  • Xiaomi

固然這也只能說明了企業對 Fuchsia 感興趣,實際投入使用仍是受各類外部制約,不過做爲開源的系統,Fuchsia 也存在被定製 cv 的可能, 做爲 Flutter 開發者仍是但願 Fuchsia 之後能有一席之地,畢竟新的系統也表明着新的機會。

相關文章
相關標籤/搜索