我在以前發佈過的 《Fuchsia 是什麼?Fuchsia OS 的將來如何?》 中介紹過 Fuchsia
的大致狀況,也收到了你們對於 Fuchsia
OS 褒貶不一的評價,好比:編程
也有不看好將來的評論,好比:異步
其實這些評價都很正常,畢竟一個系統的成功,除了實力以外還受到「天時地利」的影響,可是這不影響咱們對它的關注,而 Fuchsia
的 Fuchsia Programming Language Policy 也能夠幫助咱們從另外一個角度去認識 Fuchsia
的策略與定位。async
Fuchsia
目前主要支持的語言政策有 C
、C++
、Dart
、Rust
、Go
、Python
,可是實質上主要的只有 C
、C++
、Dart
和 Rust
,其中:異步編程
Fuchsia
中C
庫是根據C11
標準編寫的(有少許例外,例如unix signal support
,與咱們的C
庫ABI
並不特別相關),而且C99
不會是兼容目標。工具
Fuchsia
源碼中被普遍使用。
Fuchsia
中C
的頭文件應該和 C ++ 11,C ++ 14 和C ++ 17 標準兼容,而且 C 和 C ++ 接口不該混在一個頭文件中。開發工具
Dart 主要是面向非驅動的開發人員,主要用於界面和非永久運行的程序上,而目前 Fuchsia 的大多數用戶界面都是使用 Flutter 構建的。google
Rust 並非面向終端開發人員,雖然 Rust 在 Fuchsia
源碼中被普遍使用(除了 zircon
內核),可是目前 Rust 沒有開放出來,猜想多是 Rust 在 Fuchsia
上還不夠穩定,而且目前的終端開發者不須要直接使用到 Rust。unix
Go 目前看來是後續不會被繼續在 Fuchsia
中使用,有點被拋棄的味道,目前僅僅還被用於 netstack
相關的代碼中,可是官方表示後續可能會遷移到其餘語言。code
Go 的資源佔用比 C++ 和 Rust 更多,並且編譯成本相對較高,運行時環境龐大,理念上不大符合
Fuchsia
輕量級的概念。cdn
總結看來 Fuchsia
上主要的開發語言是 C / C++ 和 Dart ,Google 是儘量地使用本身的親生「孩子」。
Google 表示選擇 Rust
/ Dart
的理由是其 async / await
上對異步編程的強大支持, C / C++
則是常年必備的高效語言,而從目前 Google 對於 Go 的態度上也能夠猜想 Fuchsia
的定位是更輕量級的系統 ,很大可能不會像現階段 Android 那麼「重」,至少不會是爲了替換 Android 而被推出。
最後,從目前已知信息可知,大概有 21 個合做夥伴出如今 Fuchsia 的 Gerrit 中,它們主要來自 13 家不一樣的公司,其中 6 家目前是 Android 的製造商:
固然這也只能說明了企業對 Fuchsia
感興趣,實際投入使用仍是受各類外部制約,不過做爲開源的系統,Fuchsia
也存在被定製 cv 的可能, 做爲 Flutter 開發者仍是但願 Fuchsia
之後能有一席之地,畢竟新的系統也表明着新的機會。