Kubernetes 为什么没有采用 Rust 实现?
知乎回答:Kubernetes 为什么没有采用 Rust 实现?
2012 年 3 月,Google 发布 Go 1.0。
2014 年年中,Google 宣布 Kubernetes 项目1,简称 k8s,其原型为 Google 内部的 Borg 集群管理器。与用 C++ 编写的 Borg 不同,Kubernetes 源代码是用 Go 语言编写的。
2015 年 5 月 15 日,Rust 1.0 发布,当时 Rust 由 Mozilla 赞助。
2015 年 7 月 21 日,Kubernetes 1.0 发布。同时,Google 与 Linux 基金会合作组建了云原生计算基金会 (CNCF),并提供 Kubernetes 作为种子技术。
显然,在 2015 年,对于 Kubernetes 这种量级的项目,Google 选择了相对成熟的、自家控制的 Go 语言,而不是刚刚发布 1.0 的 Rust 语言。
Google 的另一款产品 —— 2016 年披露的 Fuchsia 操作系统,已经大量使用 Rust 语言2,用于系统组件开发。
根据 2022 年 12 月谷歌安全博客的一篇报告3,Google 的 Android 操作系统已经应用 Rust 语言。AOSP 中大约有 150 万行 Rust 代码,涵盖新功能和组件,例如 Keystore2、新的超宽带 (UWB) 堆栈、DNS-over-HTTP3、Android 的虚拟化框架 (AVF) 以及各种其他组件及其开源依赖项。
在 2015 年,Google 选择 Go 语言是相当合理的技术决策,而在 2023 年,Rust 已经成立了基金会,具有了丰富的开源生态,在亚马逊、微软、谷歌、华为等大公司都有应用。
如果你有相应的人才储备和技术经验,新项目完全可以考虑 Rust 语言。