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

    文章

    6591

    浏览量

    104031
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73623
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6601

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

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

收藏 人收藏

    评论

    相关推荐

    C语言和C++中结构体的区别

    同样是结构体,看看在C语言和C++中有什么区别?
    的头像 发表于 10-30 15:11 199次阅读

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    <b class='flag-5'>C</b>7000优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器

    未来嵌入式系统的黄金搭档 MCX N947遇上Rust

      Rust 介绍 Rust 是一门注重安全的语言,相比于 C/C++/ASM 有着更高级的抽象能力、编译器带来的安全特性与广泛友好的社区支持。 Linux 与 Windows 内核也
    的头像 发表于 07-25 09:14 1350次阅读
    未来嵌入式系统的黄金搭档 MCX N947遇上<b class='flag-5'>Rust</b>

    C++语言基础知识

    电子发烧友网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    C++中实现类似instanceof的方法

    C++有多态与继承,但是很多人开始学习C++,有时候会面临一个常见问题,就是如何向下转型,特别是不知道具体类型的时候,这个时候就希望C++ 可以向Java或者Python中有instanceof这个
    的头像 发表于 07-18 10:16 574次阅读
    <b class='flag-5'>C++</b>中实现类似instanceof的方法

    鸿蒙OpenHarmony开发板解析:【Rust模块配置规则和指导】

    C/C++代码和提升编译速度,使用了GN + Ninja的编译构建系统。GN的构建语言简洁易读,Ninja的汇编级编译规则直接高效。
    的头像 发表于 05-10 11:32 1290次阅读
    鸿蒙OpenHarmony开发板解析:【<b class='flag-5'>Rust</b>模块配置规则和指导】

    在嵌入式系统中集成Rust和Qt的实践

    Rust 拥有丰富的库生态系统,用于序列化和反序列化、异步操作、解析不安全输入、线程、静态分析等,而 Qt 是一个 C++ 工具包,支持跨各种平台的丰富的、基于 GUI 的应用程序,从 iOS 到嵌入式Linux。Qt 应用程序包括表示业务逻辑的
    发表于 05-03 10:26 1794次阅读
    在嵌入式系统中集成<b class='flag-5'>Rust</b>和Qt的实践

    鸿蒙OS开发实例:【Native C++

    使用DevEco Studio创建一个Native C++应用。应用采用Native C++模板,实现使用NAPI调用C标准库的功能。使用C标准库hypot接口计算两个给定数平方和的平
    的头像 发表于 04-14 11:43 2594次阅读
    鸿蒙OS开发实例:【Native <b class='flag-5'>C++</b>】

    Rust效率领先C++两倍,内存安全成国家安全议题

    这项发现由谷歌安卓平台工具及库的工程总监Lars Bergstrom在日前召开的Rust Nation英国峰会揭示。尽管此前业内对Rust的安全性和稳定性存在一定争议,特别是其‘unsafe’关键字的存在令人担忧。
    的头像 发表于 04-01 15:37 919次阅读

    使用 MISRA C++:2023® 避免基于范围的 for 循环中的错误

    在前两篇博客中,我们 向您介绍了新的 MISRA C++ 标准 和 C++ 的历史 。在这篇博客中,我们将仔细研究以 C++ 中 for 循环为中心的特定规则。
    的头像 发表于 03-28 13:53 787次阅读
    使用 MISRA <b class='flag-5'>C++</b>:2023® 避免基于范围的 for 循环中的错误

    [鸿蒙]OpenHarmony4.0的Rust开发

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

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

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

    c语言,c++,java,python区别

    C语言、C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言: C语言是一种面向过程的编程语言。它具有底层的特性,能够对计算机硬件进行直接操作。
    的头像 发表于 02-05 14:11 2370次阅读

    一次Rust重写基础软件的实践

    受到2022年“谷歌使用Rust重写Android系统且所有Rust代码的内存安全漏洞为零” [1] 的启发,最近笔者怀着浓厚的兴趣也顺应Rust 的潮流,尝试着将一款C语言开发的基础
    的头像 发表于 01-25 11:21 632次阅读

    C++简史:C++是如何开始的

    MISRA C++:2023,MISRA® C++ 标准的下一个版本,来了!为了帮助您做好准备,我们介绍了 Perforce 首席威廉希尔官方网站 支持工程师 Frank van den Beuken 博士撰写
    的头像 发表于 01-11 09:00 582次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的