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

资料

相关推荐
玖釉-7 分钟前
暴力美学与极致性能:深度解析 Meshoptimizer 的 Sloppy 减面算法
c++·windows·图形渲染
Darkwanderor7 分钟前
搜索优化——迭代加深dfs
c++·算法·深度优先·迭代加深
每天回答3个问题29 分钟前
LeetCodeHot100|对称二叉树、二叉树的直径、二叉树的层序遍历
数据结构·c++·ue4·
nianniannnn29 分钟前
力扣 3.无重复字符的最长子串
c++·算法·leetcode
羊小猪~~31 分钟前
【QT】-- 模型与视图简介
开发语言·数据库·c++·后端·qt·前端框架·个人开发
水饺编程1 小时前
第4章,[标签 Win32] :SysMets3 程序讲解02,iVertPos
c语言·c++·windows·visual studio
Hello-FPGA1 小时前
视觉软件工程师(机器视觉 / 科学成像方向)
c++
Lhan.zzZ2 小时前
Qt开发踩坑:QList越界问题导致程序崩溃
数据库·c++·qt
code_whiter2 小时前
C\C++5(内存管理)
c语言·c++
HABuo2 小时前
【linux线程(二)】线程互斥、线程同步、条件变量详细剖析
linux·运维·服务器·c语言·c++·ubuntu·centos