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++ 代码维护成本高昂,需要庞大的团队投入大量精力,并且存在诸多风险。

资料

相关推荐
Rabitebla14 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
码客-ygluu19 小时前
一个通用游戏数据服务器
c++·架构
another heaven19 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
SomeOtherTime21 小时前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
YLCHUP1 天前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
xiaoye-duck1 天前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
思麟呀1 天前
背包DP(01背包+完全背包)
c++·算法
旖旎夜光1 天前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
ShineWinsu1 天前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
SomeOtherTime1 天前
Rust集合(AI回答)
开发语言·后端·rust