【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

Azure CTO 呼吁不要使用 C/C++ 创建新项目,C++ 之父回应:你们这些高管就爱喜新厌旧

  • 2022-09-21
    北京
  • 本文字数:2654 字

    阅读完需:约 9 分钟

Azure CTO呼吁不要使用 C/C++ 创建新项目,C++之父回应:你们这些高管就爱喜新厌旧

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

微软 Azure CTO 向旧语言猛烈开炮,C++之父对此进行了辩护。

 

微软 Azure CTO Mark Russinovich 呼吁放弃 C 和 C++这两门久经时间考验,被广泛应用于高性能本机应用程序开发的编程语言。C++之父 Bjarne Stroustrup 回应称企业高管就是喜欢新事物,且一些人总爱发表非常片面的言论。

 

本周一,Russinovich 敦促科技行业放弃 C/C++。他强调,“说到编程语言的选择,是时候停止用 C/C++创建新项目了。Rust 才是无垃圾回收语言中的最佳选项。出于安全性和可靠性的考量,整个软件行业都该弃用这两种陈旧的语言。”

 


从 C++专家到“Rust 传播者”

 

Mark Russinovich 本人是著名的黑客和逆向工程大师,2005 年,曾运用逆向工程在索尼 DRM 产品中发现 rootkit 复制保护有害程序。该曝光事件在当时极其有名,因为 rootkit 性质恶劣,它通过修改操作系统,阻止计算复刻 CD 副本,并无法卸载,甚至无法被反病毒和反间谍程序检测到,为其他恶意软件打开了渗透 Windows PC 的大门。另外,他还曾利用闲暇时间写过三本安全相关的小说(堪称摸鱼大师)。

 

在 Reddit 上,他被人誉为“地球上最有才华的 C/C++ 程序员之一”。在加入微软之前,Russinovich 编写并发布了数十个流行的 Windows 管理和诊断实用程序。 2006 年,微软收购了他一手创办起来的企业 Winternals Software,Russinovich 也因此加入微软,成为微软技术研究员——这是它可以授予的最高荣誉之一,随后职位变更为微软 Azure 主架构师以及 CTO。

 


截图来源:https://www.linkedin.com/in/markrussinovich/

 

因其微软 Azure CTO 的身份,Mark Russinovich 的评论值得注意,因为微软的核心产品,如 Windows、Office 和 SQL Server,主要是用 C 和 C++ 编写的。而在 Azure 云平台上得到广泛应用的 Linux 也是如此,主要语言为 C 和 C++。根据报道,Linux 缔造者 Linus Torvalds 已经证实,除非出现不可预见的特殊状况,否则 Linux 6.1 版内核将使用 Rust 代码。作为向来以 C 语言编写,同时包含少量汇编及胶水脚本的传世项目,Linux 对 Rust 的接纳堪称里程碑式事件。

 

Rust 是 Graydon Hoare 出于个人爱好设计的编程语言,于 2006 年在 Mozilla 初步成型,并在 2010 年正式亮相。随着 2015 年 Rust 1.0 的发布,它也逐渐以 C/C++替代选项的姿态得到人们的广泛关注。

 

自那时起,Rust 连续七年成为 Stack Overflow 年度调查中最受欢迎的编程语言。尽管学习难度不低,但它还是被各大科技巨头先后纳入自家项目当中。

 

苹果、亚马逊、谷歌、Meta 乃至微软等等,都已经在功能开发和实际生产中使用 Rust。Cloudflare最近大肆宣传的全新HTTP代理Pingora也是用 Rust 编写而成,据称在提高性能的同时削减了 CPU 与内存用量。

 

Rust 的最大优势在于出现内存损坏 bug 的几率更低,也就让软件变得更加安全。至少自 2019 年以来,微软就一直在讨论放弃 C/C++、转用 Rust 的可能性。微软还在开发自己的云内存安全编程语言,即 Verona 项目。所以,Russinovich 这次提出放弃 C/C++的主张,可以说是早有先例。

 

另外,这也不是微软第一次公开支持 Rust。三年前,微软安全响应中心(MSRC)曾在博客上发表文章表示“ Rust 是目前 C 和 C++ 的最佳替代品”。 MSRC 团队还表示,“大多数修复的漏洞和分配的 CVE 都是由开发人员无意中将内存损坏错误插入到其 C 和 C++ 的代码中造成的。自 2006 年以来,微软修复的 CVE 中约有 70%跟内存安全问题相关。这意味着,如果该软件是用 Rust 编写的,那么这些安全问题很可能会被消除。”

 

外媒 The Register 询问了 Russinovich 的建议是否会在全公司内部推行,但微软方面拒绝置评。

当然,单靠 Rust 本身并不足以保障软件安全。它虽然提供针对内存安全漏洞的防御,但却无法消除其他威胁元素。

 

正如 Rust 说明文档所言,“Rust 是种既安全、又不那么安全的语言。”开发者有可能在某些任务中编写出不安全的 Rust 代码,这是无法单靠语言自身解决的问题。另外,Rust 也解决不了健全软件设计范畴之外的攻击向量(例如社会工程)。但必须承认,Rust 的品质相当过硬,在自己的领地内足以支撑起更强的安全信心。

 

Rust 基金会执行董事兼 CEO Rebecca Rumbul 在采访中表示,“我们希望各方的支持和肯定能推动针对 Rust 基础设施和技术社区的持续投入,确保 Rust 能够在未来的发展道路上延续安全、可靠和可持续等优势。”

 

C++之父:ISO C++已经实现了可靠的内存安全

 

对此,外媒请 C++缔造者 Bjarne Stroustrup 发表了评论。在回复中,Stroustrup 站在 C++的立场做了一番辩护。

 

人们总是迷恋那些看似能让生活更轻松的新事物,这一点在企业高管身上体现得尤其明显。

 

“另外,选择新事物也能激起人们的兴奋之情;相比之下,解决旧有知名工具中的已知问题就显得没那么‘酷’。很遗憾,新语言往往需要多年历练和完善,才能在广泛的应用领域中获得与成熟语言相比肩的水平。但大多数人看不到一点,而且总爱发表一些非常片面的评论。”

 

Stroustrup 表示,“当然,安全性在大多数开发场景下都至关重要,所以多年来我一直致力于提高 C++的安全性。”

 

“我们现在已经在 ISO C++中实现了可靠的完美类型与内存安全。也就是说,每个对象都会根据它的定义类型进行使用。具体而言,我们消除了空指针问题、能够捕捉范围错误,并消除了数据争用。请注意,包括 Rust 在内,任何一种号称‘安全’的语言都无法彻底避免风险代码。”

 

Stroustrup 还以参与编写的 C++ Core 指南为例,提出“这份指南的基本思路,就是定义一组必须遵循的安全规则,而后通过静态分析强制执行这些规则。之所以需要这些规则,是因为任意 C 或 C++代码本身无法自证安全。”

 

“这就是符合 ISO 标准的 C++代码,可以强制要求开发者通过分析器保障代码安全和更新。目前,微软 Visual Studio、Clang Tidy 等都提供类似的分析器实现选项。”

 

“C++正在积极进步,而且已经在实际应用当中发挥出良好的灵活性和性能表现。当前,各类项目中部署的 C++代码多达数十亿行。”

 

“所以无论是直接替换掉这些 C++代码,还是所谓让它们更加‘安全’,都会是一项艰巨的任务。如果没有分期分批、持之以恒的努力,大量不安全的 C 代码和陈旧 C++代码将‘永远’存在。纵观历史,在颠覆性革命出现惨烈失败之后,更温和的演进方式往往能够最终取得成功。”

 

参考链接:

https://www.theregister.com/2022/09/20/rust_microsoft_c/

https://devclass.com/2022/09/20/microsoft-azure-cto-on-c-c/

https://www.csoonline.com/article/2998952/sony-bmg-rootkit-scandal-10-years-later.html

https://news.ycombinator.com/item?id=32905885

https://www.reddit.com/r/programming/comments/xj3muf/mark_russinovich_azure_cto_its_time_to_halt/

2022-09-21 14:517969

评论 1 条评论

发布
用户头像
我们现在已经在 ISO C++中实现了可靠的完美类型与内存安全。

哪个版本的C++。
2022-09-21 19:16 · 广东
回复
没有更多了
发现更多内容

通过ETLCloud CDC构建高效数据管道解决方案

RestCloud

数据同步 ETL CDC 数据集成工具

Kurator V0.6.0:实现应用全流程生命周期管理

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 Kurator

菜单栏时钟软件:Dato for Mac v5.2.0激活版下载

影影绰绰一往直前

PDF处理工具:ABBYY FineReader PDF 15 for Mac v15.2.14中文激活版下载

影影绰绰一往直前

一种轻量分表方案-MyBatis拦截器分表实践|京东零售技术实践

京东零售技术

Java 后端 mybatis

「2023 年度中国时序数据应用创新奖」正式公布,路特斯、一汽解放榜上有名

TDengine

tdengine 时序数据库

面试官:SpringCloudGateway过滤器类型有哪些?

王磊

Java 面试

大模型训练、多模态数据处理与融合:从理论到实践

百度开发者中心

人工智能 大模型

新格局,新生态!天翼云以国云智算底座赋能AI产业发展!

天翼云开发者社区

小程序 云计算

4K视频下载器:4K Video Downloader Plus Pro for Mac v1.4.2激活版下载

影影绰绰一往直前

ps2024安装包永久版 ps2024版本有什么新功能?

Rose

Photoshop 2024破解版 Photoshop 2024直装版 ps2024新功能 ps2024中文

AI 原生时代的云计算

百度Geek说

人工智能 云计算

文心一言 VS 讯飞星火 VS chatgpt (191)-- 算法导论14.2 1题

福大大架构师每日一题

福大大架构师每日一题

实力强劲!天翼云斩获多项权威大奖与认证!

天翼云开发者社区

云计算 算力

当我谈查询优化器时,我谈些什么 (1)—— IR 设计

Databend

跳过youtube赞助商广告软件:SponsorBlock for YouTube for Mac v5.5.4激活版下载

影影绰绰一往直前

AI大底座:大模型时代的深度解析与实践

百度开发者中心

自然语言处理 语音识别 大模型 AI 大底座

AIGC、AGI、ChatGPT:揭秘人工智能大模型的变革与创新

百度开发者中心

人工智能 大模型 ChatGPT

详解如何在数仓中搭建细粒度容灾应用

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

数据治理包括哪些内容

悦数图数据库

Wireshark中的ICMP协议包分析

小齐写代码

油猴Safari浏览器插件:Tampermonkey for Mac中文版

iMac小白

快速图像查看器:EdgeView 4 for Mac v4.4.8激活版下载

影影绰绰一往直前

声音虹吸音频处理工具:Sound Siphon for Mac v3.6.6激活版下载

影影绰绰一往直前

Nuxt 3.10 正式发布,来看看有功能变化!

伤感汤姆布利柏

数字先锋|智慧“育”见未来!天翼云携手知学云为人才培育注入新活力

天翼云开发者社区

人工智能 教育

最佳GTD时间效率工具:OmniFocus Pro 4 for mac v4.0.5正式激活版下载

影影绰绰一往直前

作者推荐 | 企业级缓存技术解析,你必须知道的“9“大技术问题与常见误区

洛神灬殇

分布式缓存 技术指南 2024年第二十八篇文章 技术误区 探索分析

定制开发:软件公司塑造独特解决方案

天津汇柏科技有限公司

定制软件开发 软件定制开发 软件开发定制

生活中必不可少的就是日历了,万年历 for Mac与其他日历软件有哪些不一样呢?

Rose

日历 Mac日历软件 万年历

室内LED显示屏能否改为户外使用?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家 户内led显示屏

Azure CTO呼吁不要使用 C/C++ 创建新项目,C++之父回应:你们这些高管就爱喜新厌旧_语言 & 开发_Tina_InfoQ精选文章