0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大厂对Rust的态度,C++之父回应

倩倩 来源:CSDN 作者:辛晓亮 2022-09-22 11:25 次阅读

9 月 20 日,微软 Azure 现任 CTO、Sysinternals 主要开发者 Mark Russinovich 在其个人推特账号发表动态称是时候停止使用 C/C++启动任何新项目,并建议在需要使用 noc-GC 语言的场景下使用 Rust 编程语言。

Rust 由 Graydon Hoare 设计,而后在 Mozilla 成型,Rust 设计时借鉴了许多 C++ 的设计思想如并发特性等,也以高性能著称,还实现了内存安全。2015 年 Rust 作为 C/C++ 的替代品开始引起人们的关注,正因如此,Rust 也经常被拿来与 C++ 进行比较,开发者也经常因为 Rust 还是 C++ 更好而争论。

Mark Russinovich 此番言论一出,也是在技术圈引起大量讨论。

Mark Russinovich圈内地位

不同于从小就热衷于计算机的其他技术大牛,Mark Russinovich 15 岁才开始对编程很感兴趣,随后在卡内基·梅隆大学获得计算机工程博士学位。加入微软之前,Mark Russinovich 先是做着 Windows NT 性能监控软件的开发工作,随后与 Bryce Cogswell 共同创办了 Winternals Software 公司并一起开发了数十款流行的 Windows 管理和诊断实用程序,这其中就包括著名的系统工具 Sysinternals。

2006 年微软收购了 Winternals Software 公司,Mark Russinovich 也随即加入微软,帮助提升 Windows 的技术水平。在微软,Mark Russinovich 开发了非常多的系统工具,比如 winobj、sysmon、diskmon 和进程监视器,同时他还著有被称为 BSD 红皮书的《Windows Internals》,此外,Mark Russinovich 还精通逆向工程,震惊世界的索尼BMG光盘复制保护丑闻就是他发现的。

也因如此,不少开发者认为像他这样的大佬不应该参与到这种哪个编程语言更好的争论之中。

大厂对 Rust 的态度

尽管作为微软 Azure 的 Mark Russinovich 表示自己发表的只是个人意见,但其实微软对 Rust 的态度已经很明朗。不仅仅是作为 Rust 基金会的创始人,早在 2019 年,微软就开始使用 Rust 重写 Windows 组件。当时微软表示,其产品 70% 的安全漏洞都是内存安全问题,他们需要更安全的系统编程语言,毫无疑问,Rust 是最好的选择,Rust 编译器提供的内存和数据安全给微软的开发者提供了很大的帮助。

微软在官方文档中提到,他们选择 Rust 作为 Windows 最新的程序设计语言,另一个因素就是 Rust 在 Stack Overflow 开发者报告中已经连续 7 年成为最受开发者欢迎的编程语言。

得益于内存安全,Rust 备受青睐,不止微软,Rust 已经在其他科技大厂如苹果、亚马逊、谷歌、Linux 开发中广泛应用。Meta 还将 Rust 列为开发人员首选语言名单。

众所周知,Linux 之父 Linus Torvalds 对 Rust 也有独特的 Rust 的偏爱,Rust 目前已经成为 Linux 的第二编程语言,目前 Linux 的内核正在使用的 C 语言相比,Rust 最大的优点在于内存安全。

在 9 月 19 日结束的内核维护者峰会上,Linus Torvalds 接受媒体采访时说道,“如果不出意外,Rust 将出现在 Linux 6.1 内核之中”。Torvalds 还表示,除了内存安全的因素,他希望在内核中看到 Rust 的另一个原因是鼓励新的开发人员开始研究内核。

Linux 已迭代至 6.0,目前 Rust 进入内核的主要问题是编译器,现在的内核通常使用 GCC 编译,但 Rust 通常使用 LLVM 编译器进行编译。

C++ 之父回应

对于 Mark Russinovich 的言论,外媒 The Register 邀请 C++ 之父 Bjarne Stroustrup 进行了回应。

“人们总是迷恋那些看似能让他们生活更轻松的新事物,这点在企业高管上尤其明显。此外,支持新事物远比解决旧工具的已知问题更令人兴奋。不幸的是,新语言通常需要多年时间和重大努力才能在其广泛的应用领域与成熟语言相匹配。但大多数开发者看不到这一点,而且他们喜欢发表片面的评论。”

Bjarne Stroustru 还表示:”在许多情况下,安全性至关重要,这也是我们多年来一直致力于提高 C++ 安全性的原因。我们现在已经在 ISO C++ 中实现了可靠的完美类型与内存安全。具体来说,我们消除了空指针问题,能够捕捉范围错误,消除了数据争用等。此外需要注意的是,包括 Rust 在内,任何一种号称安全的语言都可能存在不安全代码的漏洞。“

Bjarne Stroustru 最后还补充道:“直接替换 C++ 代码,或者让它们变得更加安全都是一项非常艰巨的任务,需要逐步慢慢的才能做到这一点。否则大量不安全的 C++ 代码将会永远存在。”

开发者的不同声音

不少开发者许多开发者都对 Rust 的过度宣传感到反感,并表示不同的工具适合不同的问题,不要再过度宣传某一种编程语言。Rust 很好,但它不是所有问题的解决方案。

Rust 与 C/C++ 这一次的对比同样少不了网友的调侃,其中就有开发者表示:“在过去的三十年里,每隔五年 C/C++ 会被宣布一次死亡”。

也有开发者认为 C/C++ 只是工具,批评 C/C++ 不如 Rust 安全是不负责任的,程序是否安全应该问责开发者,通过更换编程语言并不能解决程序代码不安全的问题。

确实像这位开发者所言,Rust 本身并不能保证软件是安全的,它提供了针对内存安全漏洞的防御,但并不能消除其他类别的漏洞。正如 Rust 官方文档解释的那样,“Rust 包含安全和不安全的编程语言”,开发人员可以选择为某些任务编写不安全的 Rust,他们可能会在无意中创建不安全的代码。

抛开这些调侃,尽管不少大厂都在扶持 Rust,但在许多开发者眼中,一方面他们更关注 Rust 有没有在更多的产品中得到应用和发展,另一方面 Rust 过于陡峭的学习曲线也给开发者带来了困扰,从学习 Rust 到具备实际生产力需要一定的时间,这也是不少开发者抗拒 Rust 的原因。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6237

    浏览量

    103076
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72893
  • Rust
    +关注

    关注

    1

    文章

    223

    浏览量

    6386

原文标题:呼吁停用 C/C++,微软 Azure CTO 更青睐 Rust

文章出处:【微信号:玩转VS Code,微信公众号:玩转VS Code】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [鸿蒙]OpenHarmony4.0的Rust开发

    中集成 Rust 代码,并最大程度发挥 Rust 和 OpenHarmony 中原有 C/C++ 代码的交互性,采用 GN 作为统一构建工具,即通过 GN 构建 Rus
    的头像 发表于 02-26 17:28 306次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    谷歌捐款100万美元给Rust基金会,以增强C++Rust的交互性

    如今,谷歌多项核心业务仍以 C++为主要编程语言,虽然无法直接使用Rust替代现有的C++程序,但谷歌依然选择支持Rust基金会的“Interop Initiative”计划,帮助那些
    的头像 发表于 02-19 15:41 162次阅读

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3. Rust在windows上为什么需要安装Visual studio?
    的头像 发表于 01-02 11:00 235次阅读

    C++之父新作带你勾勒现代C++地图

    为了帮助大家解决这些痛点问题,让大家领略现代C++之美,掌握其中的精髓,更好地使用C++C++之父Bjarne Stroustrup坐不住了,他亲自操刀写就了这本《
    的头像 发表于 10-30 16:35 446次阅读
    <b class='flag-5'>C++</b><b class='flag-5'>之父</b>新作带你勾勒现代<b class='flag-5'>C++</b>地图

    Rust语言如何与 InfluxDB 集成

    Rust 是一种系统级编程语言,具有高性能和内存安全性。InfluxDB 是一个开源的时间序列数据库,用于存储、查询和可视化大规模数据集。Rust 语言可以与 InfluxDB 集成,提供高效
    的头像 发表于 09-30 16:45 612次阅读

    Rust GUI实践之Rust-Qt模块

    Rust-Qt 是 Rust 语言的一个 Qt 绑定库,它允许 Rust 开发者使用 Qt 框架来创建跨平台的图形界面应用程序。Qt 是一个跨平台的应用程序框架,它提供了一系列的工具和库,可以帮助
    的头像 发表于 09-30 16:43 957次阅读

    如何在Rust中读写文件

    Rust是一种系统级编程语言,它的设计目标是提供安全、并发和高性能的编程体验。Rust的特点在于其内存安全性和线程安全性,它采用了一些创新性的技术,如所有权系统和生命周期,来解决C和C++中常
    的头像 发表于 09-20 10:57 1179次阅读

    基于Rust的Log日志库介绍

    Rust是一门系统级编程语言,因其安全性、高性能和并发性而备受欢迎。在Rust应用程序中,日志记录是一项非常重要的任务,因为它可以帮助开发人员了解应用程序的运行情况并解决问题。Rust的Log库提供
    的头像 发表于 09-19 14:49 2081次阅读

    如何在Rust中高效地操作文件

    Rust语言是一种系统级、高性能的编程语言,其设计目标是确保安全和并发性。 Rust语言以C和C++为基础,但是对于安全性和并发性做出了很大的改进。 在Rust语言中,操作文件是非常重
    的头像 发表于 09-19 11:51 1444次阅读

    一起探索C++的世界!

    C++
    YS YYDS
    发布于 :2023年07月07日 19:10:25

    使用C++编写通用库并在 Rust 中使用它 (WASI)

    使用 C++ 编写通用库并在 Rust 中使用它 (WASI) WebAssembly 简介 WebAssembly 是一种二进制指令格式,旨在成为一种低级虚拟机,可以在 Web 浏览器中以接近本机
    的头像 发表于 06-16 10:03 640次阅读
    使用<b class='flag-5'>C++</b>编写通用库并在 <b class='flag-5'>Rust</b> 中使用它 (WASI)

    Rust的内部工作原理

    Rust到汇编:了解 Rust 的内部工作原理 非常好的Rust系列文章,通过生成的汇编代码,让你了解很多Rust内部的工作机制。例如文章有 Rus
    的头像 发表于 06-14 10:34 462次阅读
    <b class='flag-5'>Rust</b>的内部工作原理

    Rust代码中加载静态库时,出现错误 ` rust-lld: error: undefined symbol: malloc `怎么解决?

    “ [i]malloc ”、“ [i]exit ”。我验证了使用 ` [i]nm ` 命令。 问题是我打算使用 ffi 在 rust 中使用这个静态库。当我尝试在我的 Rust 代码中加载静态库
    发表于 06-09 08:44

    rust语言基础学习: rust中的错误处理

    错误是软件中不可避免的,所以 Rust 有一些处理出错情况的特性。在许多情况下,Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。
    的头像 发表于 05-22 16:28 1381次阅读

    取代C++!微软用Rust改写的Win11内核来了

    按照微软此前介绍,Rust 语言的优势在于极高的内存安全性,原来内核中大量的不安全的子例程在改写后消失不见。同时,Rust 代码简洁高效,移植后 Office 应用没有任何性能损失,甚至部分场景比 C++ 运行效率更高。
    的头像 发表于 05-19 16:58 1097次阅读
    取代<b class='flag-5'>C++</b>!微软用<b class='flag-5'>Rust</b>改写的Win11内核来了