当前位置:首页 > 科技  > 软件

倍杀!谷歌表示:Rust团队的开发效率是C++团队的两倍

来源: 责编: 时间:2024-04-09 09:09:34 280观看
导读编译丨诺亚出品 | 51CTO技术栈(微信号:blog51cto)谷歌的工程总监Lars Bergstrom在伦敦的Rust Nation UK大会上分享了谷歌将Go或C++编写的项目迁移到Rust语言的经验。他表示,使用Rust的开发团队相比于使用C++的团队,在工作

编译丨诺亚7fK28资讯网——每日最新资讯28at.com

出品 | 51CTO技术栈(微信号:blog51cto)7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

谷歌的工程总监Lars Bergstrom在伦敦的Rust Nation UK大会上分享了谷歌将Go或C++编写的项目迁移到Rust语言的经验。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

他表示,使用Rust的开发团队相比于使用C++的团队,在工作效率上大约高出两倍。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

早在2016年Dropbox和2018年Figma就已经开始尝试用Rust重写代码以确保内存安全,但当时业界对于Rust在生产力和语言可靠性方面的疑虑并未完全消除。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

然而随着时间推移,尤其是在软件安全性日益成为国家基础设施关键问题的大背景下,非内存安全语言带来的挑战引起了更广泛的认识转变。美国和其他国家政府机构也强调了软件中内存安全的重要性。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

微软Azure首席技术官Mark Russinovich在2022年9月提出,原本可能选择C/C++进行开发的软件项目应考虑改用Rust,这一建议不仅适用于新项目,还扩展到对旧的、非内存安全语言编写的代码进行重构的需求。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

今年早些时候,微软甚至发出了求助呼吁,希望开发者协助将自家的C#代码移植至Rust,并且互联网安全研究组(ISRG)的Prossimo项目正在将一些核心开源组件,如NTP、DNS、TLS等重要库重写为Rust版本,旨在提高内存安全性。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

尽管C++之父Bjarne Stroustrup以及其他人士对此有所抵触,Stroustrup在回应2022年11月NSA关于内存安全的备忘录时指出,通过合适的工具,C++也能在较低成本下达到与Rust相当的内存安全保证。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

然而,像谷歌这样的Rust实践者提供的反例则显示,坚持使用现有C++基础设施的成本优势可能并不成立。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

谷歌内部将Go代码转换为Rust的过程中,发现重构后的项目开发所需的时间和人力并没有增加,反而显示出诸多优点。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

Bergstrom提到,将Go代码重写为Rust时,同等规模的团队可以在相同时间内完成工作,这意味着从Go转向Rust并不会导致生产力下降;相反,他们观察到了Rust代码带来的好处,比如服务内存使用量减少以及随着时间推移,用Rust重写的服务缺陷率逐渐降低,从而提高了程序正确性。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

更重要的是,相较于C++代码转为Rust的情况,Rust开发者的生产效率优势更为明显。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

此外,各方观点也指出,虽然内存安全性是软件安全的重要组成部分,但并非所有安全问题都能归结于内存安全。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

卡内基梅隆大学软件工程研究所等机构强调,所有编程语言都有其权衡之处,选择何种语言应取决于它是否适合特定应用场景。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

某些情况下,强调内存安全的语言可能会牺牲性能和时间要求,而且无论选用哪种语言,开发者都必须掌握正确的语法、语义、结构、习惯用法及工具,否则可能会出现其他类型的漏洞或缺陷。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

尽管如此,Rust通过避免内存相关的安全隐患,在许多场景下被视为提升软件安全性的有效手段之一。7fK28资讯网——每日最新资讯28at.com

7fK28资讯网——每日最新资讯28at.com

参考链接:https://www.theregister.com/2024/03/31/rust_google_c/7fK28资讯网——每日最新资讯28at.com

想了解更多AIGC的内容,请访问:7fK28资讯网——每日最新资讯28at.com

51CTO AI.x社区7fK28资讯网——每日最新资讯28at.com

https://www.51cto.com/aigc/7fK28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82188-0.html倍杀!谷歌表示:Rust团队的开发效率是C++团队的两倍

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 十个超级实用的Java代码片段

下一篇: 《蛋仔派对》守护月开展多项反诈趣味活动,牢筑网络安全防护网!

标签:
  • 热门焦点
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • iQOO 11S或7月上市:搭载“鸡血版”骁龙8Gen2 史上最强5G Soc

    去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,iQOO 11不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞屏,同时在快充
Top