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

资料

相关推荐
郝学胜_神的一滴24 分钟前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
众少成多积小致巨18 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
大卫小东(Sheldon)21 小时前
Rust 推荐使用宏而非普通函数的场景
rust
doiito21 小时前
【Agent Harness】为什么我把 JSON‑LD “编译成 DAG” 后,整个 Agent 平台立刻聪明了
ai·rust·架构设计·系统设计·ai agent
jump_jump1 天前
为了重玩金庸群侠传,我研究了一下 Ruffle 怎么复活 Flash
游戏·rust·github
星栈2 天前
Dioxus 多页面怎么做:`dioxus-router`、嵌套路由、`Outlet` 和页面组织,一篇给你讲顺
前端·rust·前端框架
Rust研习社4 天前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
红尘散仙5 天前
想写一个像样的终端 App?试试把 React 的开发体验搬进 Rust TUI
前端·rust
vivo互联网技术5 天前
从 Web 到桌面:基于 Tauri 2.0 + Vue 3 打造 vivo 线下门店「大头贴」拍照体验系统
前端·rust
clint4565 天前
C++进阶(1)——前景提要
c++