什么是Fuchsia?
Fuchsia是Google开发的操作系统。和以前该公司开发的操作系统,如基于Linux内核的Chrome OS和Android等不同,Fuchsia基于新的名为Zircon的微内核,受Little Kernel启发,用于嵌入式系统,主要使用C语言和C++编写。Fuchsia的设计目标之一是可运行在众多的设备上,包括移动电话和个人电脑。
Fuchsia应用使用什么语言开发?
谷歌新一代开源操作系统 Fuchsia 的开发者网站上公布了一份 Fuchsia 编辑语言策略,文档描述了 C、C++、Dart、Rust 与 Go 的优劣势,并明确指定了其中哪些语言将会在 Fuchsia 开发生态中得到怎样程度的支持。
文档接下来分别罗列了几种编程语言,分析了它们的优缺点之后,得出如下结论:
C语言
C 被支持用于终端开发者。在 Fuchsia Platform Source Tree 中,不鼓励使用 C 的新用法,并且仅批准用于以下领域:
(1)用于底层系统编程,包括内核中
(2)用于定义到共享库和其它系统组件的 ABI 稳定接口
C++语言
C++ 被支持用于终端开发者。批准在整个 Fuchsia Platform Source Tree 中使用 C++。
Dart语言
Dart 被支持用于面向非驱动程序的终端开发者。Dart 被批准在 Fuchsia Platform Source Tree 中用于用户界面和无限期运行的程序。
Rust 语言
终端开发者不支持使用 Rust。除了 Zircon 内核,Rust 被批准在整个 Fuchsia Platform Source Tree 中使用。
Go语言
Go 仅被批准在网络技术栈中使用,因为网络栈的迁移需要大量成本。时间准许的话,应该将网络栈迁移到批准的语言。必须将 Fuchsia 中用于目标设备上生产软件的所有其它 Go 代码迁移到批准的语言。Go 在 Fuchsia 生态中可能会有些失落,值得注意的是文档中关于其缺点的介绍:
(1)使用垃圾回收来管理内存,这比其它用于管理内存的技术占用更多的资源
(2)运行时环境庞大
(3)Fuchsia Platform Source Tree 在使用 Go 方面具有负面的实施经验。Fuchsia 项目在 Go 中构建的系统组件消耗的内存和内核资源相比使用 C++ 或 Rust 构建的同类组件更多
(4)工具链产生大型二进制文件
值得关注的是,文档中没有涉及 Fuchsia 已经确认支持的 Python。不过关于 Python 的支持细节,支持语言页面也没有详细内容,只有一栏栏 TODO,应该是还没有做好准备。
总结一下,Fuchsia操作系统的主要开发语言将是C/C++/Dart/Rust,终端界面语言是Dart,看来Dart即将要起飞了,google的这个决定你觉得意不意外,惊不惊喜呢?欢迎下方留言讨论!
有疑问加站长微信联系(非本文作者)