0
点赞
收藏
分享

微信扫一扫

Fuchsia 的开发语言政策与解读

我在之前发布过的 ​​《Fuchsia 是什么?Fuchsia OS 的未来如何?》​​ 中介绍过 ​​Fuchsia​​​ 的大体情况,也收到了大家对于 ​​Fuchsia​​ OS 褒贬不一的评价,比如:

Fuchsia 的开发语言政策与解读_python

也有不看好未来的评论,比如:

Fuchsia 的开发语言政策与解读_开发人员_02Fuchsia 的开发语言政策与解读_python_03

其实这些评价都很正常,毕竟一个系统的成功,除了实力之外还受到“天时地利”的影响,但是这不影响我们对它的关注,而 ​​Fuchsia​​​ 的 ​​Fuchsia Programming Language Policy​​ 也可以帮助我们从另一个角度去认识 ​​Fuchsia​​ 的策略与定位。

Fuchsia Programming Language Policy

​Fuchsia​​​ 目前主要支持的语言政策有 ​​C​​​、​​C++​​​、​​Dart​​​、​​Rust​​​、​​Go​​​、​​Python​​​,但是实质上主要的只有 ​​C​​​、​​C++​​​、​​Dart​​​ 和 ​​Rust​​,其中:

  • C 语言支持被所有终端开发人员使用,但是 Google 不推荐使用 C 语言的新特性,而 C 一般是被用于底层内核开发、 ABI 接口、驱动和系统组件等


​Fuchsia​​​ 中 ​​C​​​ 库是根据 ​​C11​​​ 标准编写的(有少量例外,例如 ​​unix signal support​​​,与我们的 ​​C​​​ 库 ​​ABI​​​ 并不特别相关),并且 ​​C99​​ 不会是兼容目标。


  • C++ 语言支持被所有终端开发人员使用,C++ 在 Fuchsia 源码中被广泛使用


​Fuchsia​​​ 中 ​​C​​ 的头文件应该和 C ++ 11,C ++ 14 和C ++ 17 标准兼容,并且 C 和 C ++ 接口不应混在一个头文件中。


  • Dart 主要是面向非驱动的开发人员,主要用于界面和非永久运行的程序上,而目前 Fuchsia 的大多数用户界面都是使用 Flutter 构建的。
  • Rust 并不是面向终端开发人员,虽然 Rust 在 ​​Fuchsia​​ 源码中被广泛使用(除了 ​​zircon​​ 内核),但是目前 Rust 没有开放出来,猜测可能是 Rust 在 ​​Fuchsia​​ 上还不够稳定,并且目前的终端开发者不需要直接使用到 Rust
  • Go 目前看来是后续不会被继续在 ​​Fuchsia​​ 中使用,有点被抛弃的味道,目前仅仅还被用于 ​​netstack​​ 相关的代码中,但是官方表示后续可能会迁移到其他语言。


Go 的资源占用比 C++ 和 Rust 更多,而且编译成本相对较高,运行时环境庞大,理念上不大符合 ​​Fuchsia​​ 轻量级的概念。


  • 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​​ 以后能有一席之地,毕竟新的系统也代表着新的机会。

Fuchsia 的开发语言政策与解读_c++_04

举报

相关推荐

0 条评论