我在之前发布过的 《Fuchsia 是什么?Fuchsia OS 的未来如何?》 中介绍过 Fuchsia
的大体情况,也收到了大家对于 Fuchsia
OS 褒贬不一的评价,比如:
也有不看好未来的评论,比如:
其实这些评价都很正常,毕竟一个系统的成功,除了实力之外还受到“天时地利”的影响,但是这不影响我们对它的关注,而 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
以后能有一席之地,毕竟新的系统也代表着新的机会。
来源:CSDN
作者:恋猫de小郭
链接:https://blog.csdn.net/ZuoYueLiang/article/details/104780156