首页 > 编程语言 >谷歌 Rust 团队工作效率是 C++ 团队的两倍

谷歌 Rust 团队工作效率是 C++ 团队的两倍

时间:2024-04-07 18:13:24浏览次数:21  
标签:代码 C++ Go 团队 Bergstrom Rust

谷歌 Rust 团队工作效率是 C++ 团队的两倍

来源: OSCHINA 编辑: 白开水不加糖 2024-04-01 16:01:00  22 国产数据库圈,为啥那么多水货?”

谷歌 Android 工程总监 Lars Bergstrom 在近期举行的 Rust Nation 大会上,介绍了该公司将 Go 或 C++ 编写的项目迁移到 Rust 语言的经验。

Bergstrom 称,虽然早在 2016 年的 Dropbox 和 2018 年的 Figma 就提供了用内存安全的 Rust 语言重写代码的案例,并且对生产率和这种语言的质疑已经消退,但对其可靠性和安全性的担忧却一直挥之不去。

不过随着一些组织以及美国政府机构频繁发出 “建议从 C/C++ 切换到 Rust 等内存安全语言” 的信号,Bergstrom 认为,整个软件开发生态系统的认知已经发生了转变。

就谷歌内部而言,在把被认为是内存安全但性能不佳的 Go 代码重写成 Rust 代码以后,已经呈现出了一些优势。Bergstrom 表示,采用 Go 和 Rust 构建系统所消耗的人力和时间是一样的;并且从 Go 转向 Rust 不会降低工作效率。

“有趣的是,我们确实从中看到了一些好处。我们在从 Go 迁移过来的服务中看到了内存使用率的降低...... 我们还看到,随着时间的推移,那些用 Rust 重写的服务的缺陷率也在降低,从而提高了正确性。”

值得一提的是将 C++ 代码重写成 Rust 代码后的比较。“在每种情况下,我们都发现,无论是用 Rust 构建服务,还是维护和更新这些用 Rust 编写的服务,所需的工作量都减少了 2 倍以上。”

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

且有 85% 的开发人员对 Rust 代码正确性的信心要高于其他语言。“这是一个庞大的数字...... 我一生中经历过不止一次语言调查,但从未见过这样的数字。”

标签:代码,C++,Go,团队,Bergstrom,Rust
From: https://www.cnblogs.com/sexintercourse/p/18119613

相关文章

  • 第十四届蓝桥杯省赛大学B组填空题(c++)
    日期统计:暴力枚举+set(自带排序加去重)#include<iostream>#include<set>usingnamespacestd;set<int>ans;inta[100]={5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,2,7,0,5,8,......
  • C++:类的静态成员
    无关类的实例化对象,是类自身的参数,所有同一类下的所有对象公用的成员使用如下classMyClass{public:staticintsta;//定义静态成员inta;charb;public:MyClass();~MyClass();//intoperator>=(MyClassA)//{//return......
  • CentOS安装RustDesk自建服务器
    一、安装node.js1、下载并解压[root@VM-8-2-centossrc]#cd/usr/local#下载node文件[root@VM-8-2-centoslocal]#wgethttps://registry.npmmirror.com/-/binary/node/v16.18.1/node-v16.18.1-linux-x64.tar.gz#解压文件[root@VM-8-2-centoslocal]#sudotar-zxvfno......
  • C++:重载符operator
    我们可以在类中使用重载符进行符号功能重载<返回类型>operator<重载的符号>(形参){//function} 下面重载一个符号"≥"classMyClass{public:inta;charb;public:MyClass();~MyClass();intoperator>=(MyClassA){......
  • C++:union类型
    class和struct在C++上基本没啥区别,就只有class成员权限默认为private而struct默认为public而union和前两者稍有不同,其最大的区别在于内部成员变量共享一块内存,只是这个内存可以存放不同的变量类型(占用内存大小选取取占用最大的成员变量的占用内存),所以每次无论对哪个成员更改都......
  • C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair
    C++Primer(第5版)练习11.14练习11.14扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >Fil......
  • 【C++进阶】详解红黑树&&手撕红黑树(模拟实现)!!!
    红黑树详解&&模拟实现一,红黑树的概念二,红黑树的特性三,红黑树的结构四,红黑树的迭代器五,模拟实现红黑树插入操作六,红黑树的检查一,红黑树的概念红黑树也是一颗二叉搜索树,相比于AVL树的插入,红黑树没有那么多的旋转,对平衡的检查没有那么的严格,所以是接近平衡的。红黑树,......
  • 迷宫问题(C++): 最短路径计算(队列)&& 路径输出(栈)(附一个易错点~)
    迷宫问题大同小异,先直接上代码ba~:#include<bits/stdc++.h>//包含标准库头文件usingnamespacestd;//使用标准命名空间#definesize100//定义迷宫大小typedefstruct{//定义结构体STUintx,y;}STU;queue<STU>q;//定义队列qintn,bd[size][size]={0}......
  • 【C++杂货铺】详解list容器
    目录......
  • 提升团队工程交付能力,从“看见”工程活动和研发模式开始
    作者:张裕、雅纯理想中的研发团队应当具有以下特征:总是工作在最高优先级的事项上理想的研发团队能够识别并始终集中精力在当前最紧迫和最有价值的任务上。这需要团队具备出色的项目管理能力和决策能力,以便能够正确评估优先级,做出合理的工作分配,并快速适应项目需求的变化。......