Fuchsia 编程语言策略:前端用 Dart,Go 要退出
谷歌新一代开源操作系统 Fuchsia 的开发者网站上公布了一份 Fuchsia 编辑语言策略,文档描述了 C、C++、Dart、Rust 与 Go 的优劣势,并明确指定了其中哪些语言将会在 Fuchsia 开发生态中得到怎样程度的支持。
该策略文档描述了 Fuchsia 项目在 Fuchsia Platform Source Tree(Fuchsia 平台源码树)和供终端开发者在这之外构建 Fuchsia 开发目标设备软件时使用和支持的编程语言。
Fuchsia Platform Source Tree 是 fuchsia.googlesource.com 上托管的 Fuchsia 源码,终端开发者是指在 Fuchsia Platform Source Tree 之外为 Fuchsia 编写软件的人。与终端开发者相比,Fuchsia Platform Source Tree 可以汇聚对 Fuchsia 系统及其基础技术更大的更改,因为可以执行仅影响 Fuchsia Platform Source Tree 的更改,而无需与其他人员进行协调。相反,影响终端开发者的更改需要更多的协调,并且需要更长的执行时间。
谷歌介绍,对终端开发者的支持意味着 Fuchsia SDK 需要包含可帮助他们为 Fuchsia 开发软件的工具和库,包括 FIDL(Fuchsia Interface definition language,Fuchsia 接口定义语言)特定语言后端与支持库等。对异步编程的强大支持则意味着可以使用直线型代码,例如使用 Rust/Dart 等语言的 async/await 编写异步程序。
文档接下来分别罗列了几种编程语言,分析了它们的优缺点之后,得出如下结论:
C
- C 被支持用于终端开发者。
- 在 Fuchsia Platform Source Tree 中,不鼓励使用 C 的新用法,并且仅批准用于以下领域:
- 用于底层系统编程,包括内核中
- 用于定义到共享库和其它系统组件的 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 生态中可能会有些失落,值得注意的是文档中关于其缺点的介绍:
- 使用垃圾回收来管理内存,这比其它用于管理内存的技术占用更多的资源
- 运行时环境庞大
- Fuchsia Platform Source Tree 在使用 Go 方面具有负面的实施经验。Fuchsia 项目在 Go 中构建的系统组件消耗的内存和内核资源相比使用 C++ 或 Rust 构建的同类组件更多
- 工具链产生大型二进制文件
值得关注的是,文档中没有涉及 Fuchsia 已经确认支持的 Python。不过关于 Python 的支持细节,支持语言页面也没有详细内容,只有一栏栏 TODO,应该是还没有做好准备。
而另一方面,此前关于支持 JavaScript 的传言,看来也无法得证。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开放网络安全联盟推出新的开源语言来连接安全工具
开放网络安全联盟(Open Cybersecurity Alliance,OCA)宣布提供 OpenDXL Ontology,这是用于通过通用消息传递框架连接网络安全工具的第一种开源语言。 OCA 在帖子中解释称:“通过安全社区免费使用的开放源代码,OpenDXL Ontology 使任何工具都可以自动获得使用该语言与所有其他技术进行通信和互操作的能力。通过消除单个产品之间的自定义集成的需要,此版本标志着 OCA 在整个安全行业推动更大互操作性的使命中的一个重要里程碑。“ OpenDXL Ontology基于开放数据交换层(Open Data Exchange Layer,OpenDXL),OpenDXL 是一个开放的消息传递框架,用于开发和共享与其他工具的集成。随着语言的发布,联盟可以为通知、信息、操作以及与其他工具的通信提供单一的通用解决方案。此外,它为公司提供了一套工具,可以在所有产品类别中一次使用并自动在任何地方重新使用,同时还消除了随着产品版本和功能的变化而更新集成的需求。 “例如,如果某个工具检测到受感染的设备,它可以自动通知所有其他工具,甚至使用所有人都可读的标准消息格式...
- 下一篇
运维进化论:微盟故障给我们的启示
作者简介:茹炳晟,业界知名实战派软件质量和研发工程效能专家,中国商业联合会互联网应用技术委员会智库专家,畅销书《测试工程师全栈技术进阶与实践》的作者,InfoQ 极客时间“软件测试52讲-从小工到专家的实战心法”的专栏作者。现任Dell EMC中国研发集团资深架构师,历任eBay中国研发中心测试基础架构技术负责人,HP软件中国研发中心资深架构师、性能测试专家,Alcatel-Lucent高级技术主管,Cisco中国研发中心资深工程师等职位,具有超过16年的软件研发经验和技术管理经验。 事件背景 微盟是国内移动互联网营销引领者,中国最大的微信公众智能服务平台,基于微信为企业提供开发、运营、培训、推广一体化解决方案,帮助企业实现线上线下互通,社会化客户关系管理,移动电商,轻应用等。 2月23日19点,微盟出现了大规模系统故障,根据官方消息,这是一起运维部门核心员工在生产环境的“删库”操作引发的。截止发稿时,系统目前还处于修复阶段,预计全部恢复将在2月28日晚上24点完成。在这期间,微盟启动紧急响应机制,并在腾讯云的大力支持下一起研究制定生产环境和数据修复方案。 历史上类似的事件 说到“删库...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6