Google 的 Rust 开发人员的工作效率是 C++ 团队的两倍

Google Android 工程总监 Lars Bergstrom 在近期举行的 Rust Nation UK Conference 大会上,介绍了他负责 Android 平台工具和库的工作中,将 Go 或 C++ 开发的项目迁移到 Rust 语言的一些经验。

Bergstrom 称,虽然早在 2016 年的 Dropbox 和 2018 年的 Figma 就提供了用内存安全的 Rust 语言重写代码的案例,开发人员对这种语言的开发效率不再质疑,但对其编写软件的可靠性和安全性仍然存疑。

大多数大型代码库中的安全漏洞都可以追溯到内存安全问题,由于 Rust 代码在正确实现时可以很大程度上避免这类问题,因此内存安全问题可能上升到涉及国家安全。随着一些组织尤其是美国政府机构发出 "建议从 C/C++ 切换到 Rust 等内存安全语言" 的消息,Bergstrom 认为,在软件开发生态系统中,关于使用非内存安全语言的认知已经发生了转变。

在 2022 年 9 月,微软 Azure 首席技术官 Mark Russinovich 就建议,新的软件项目以及用非安全语言开发的软件项目要重写都不应该再使用 C/C++,而应该改用 Rust。

早些时候,微软也发出呼吁,希望开发者将自己的C# 代码移植到 Rust中,而互联网安全研究组织 (ISRG) 的 Prossimo 项目一直在使用 Rust 重新编写关键库的核心开源部分(例如,NTP、DNS、TLS),以确保内存安全。

众所周知,Go 代码是内存安全但性能不及 Rust,所以 Google 进行了一系列的实践, Bergstrom 表示,Google 在将 Go 代码重写成 Rust 代码的实践中呈现出了一些优势,比如采用 Go 和 Rust 构建系统所消耗的人力和时间是差不多的,从 Go 转向 Rust 并不会降低开发效率。

Google 在将 C++ 代码重写成 Rust 代码做作比较发现:无论是用 Rust 构建服务,还是维护和更新这些用 Rust 编写的服务,所需的工作量都减少了 2 倍以上。并且有 85% 的开发人员对 Rust 代码正确性的信心要高于其他语言。

Bergstrom 表示,Google 内部流行新旧语言迁移,比如 Java 到 Kotlin 和 C++ 到 Rust,培训学习2个月,约1/3的的人可以熟练使用新语言编写代码,4个月一半以上的人可以熟练驾驭。

注:不得不感叹下Google大神们的学习能力,2个月竟然有1/3的人能驾驭 Rust,4个月就达到一半以上,着实牛逼!再想想我们自己学习 Rust 的酸爽程度,恨不能"每年入门一次Rust",很多人是反复入门(失败)而放弃,话说你是第几次入门 Rust 了?

Rust 确实很难学,不过,人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。Rust 虐我千百遍,我待 Rust 如初恋!共勉!

注:Google Rust 培训课程: github.com/google/comp...

Bergstrom 称,这一实践发现对谷歌团队来说意义重大。因为 C++ 代码维护成本高昂,需要庞大的团队投入大量精力,并且存在诸多风险。

资料

相关推荐
波音彬要多做18 分钟前
41 stack类与queue类
开发语言·数据结构·c++·学习·算法
捕鲸叉19 分钟前
C++软件设计模式之外观(Facade)模式
c++·设计模式·外观模式
只做开心事1 小时前
C++之红黑树模拟实现
开发语言·c++
程序员老冯头2 小时前
第十五章 C++ 数组
开发语言·c++·算法
程序猿会指北3 小时前
【鸿蒙(HarmonyOS)性能优化指南】启动分析工具Launch Profiler
c++·性能优化·harmonyos·openharmony·arkui·启动优化·鸿蒙开发
SomeB1oody7 小时前
【Rust自学】6.1. 定义枚举
开发语言·后端·rust
SomeB1oody7 小时前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
无 证明8 小时前
new 分配空间;引用
数据结构·c++
别NULL12 小时前
机试题——疯长的草
数据结构·c++·算法
CYBEREXP200813 小时前
MacOS M3源代码编译Qt6.8.1
c++·qt·macos