C++ 之父回应被建议弃用:一些高管总喜欢迷恋新事物

来源: OSCHINA
2022-09-22 07:36:11

Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 近日发表言论称,建议开发人员停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。针对此言论,外媒 The Register 向微软进行了询问,即 Russinovich 的建议是否会在微软全公司范围内进行采纳,但并未得到回复。

同时,该网站还就此事采访了 C++ 之父 Bjarne Stroustrup;Stroustrup 则为 C++ 进行了辩护:

“人们--尤其是一些高管--总是会迷恋那些承诺会使他们的生活更轻松的新事物,这是很正常的。而且,支持新事物远比解决旧的和众所周知的工具的已知问题更令人兴奋。不幸的是,新的语言通常需要多年的时间和重大的努力,才能在其广泛的应用领域中与成熟的语言相媲美。发烧友们很少看到这一点,他们的评论往往是相当片面的”。

Stroustrup 表示,考虑到安全性的重要程度,多年来他一直在致力于提高 C++ 的安全性;从而现在在 ISO C++ 中实现了可靠的完美类型和内存安全。也就是说,每个对象都根据它定义的类型来使用;这意味着消除了 dangling pointers 的使用、捕获范围错误并消除了数据争用。

他还强调称,包括 Rust 在内的每一种“安全”语言都存在着允许不安全代码的漏洞。并谈到了他参与编写的 C++ Core Guidelines,这份指南的基本思想是定义一套为保证安全而必须遵守的规则,然后通过静态分析来强制执行。而之所以需要这些规则,就是因为任意的 C 或 C++ 代码本身都无法自证安全。

这就是符合 ISO 标准的 C++ 代码,那些感觉不需要安全保障或者还不能更新代码的人可以直接不运行分析器。目前,微软 Visual Studio、Clang Tidy 等一些其他地方都有这种分析器的部分实现。

Stroustrup 指出,很显然的是 C++ 正在积极改进中,譬如在实际应用中的灵活性和性能提升的各种尝试。目前已有数十亿行的 C++ 代码被部署,因此无论是想要对 C++ 代码进行替换还是加强安全性,都是一项需要循序渐进的艰巨任务。“否则大量不安全的 C 和旧式 C++ 代码将'永远'存在”。

展开阅读全文
精彩评论
人们应该继续为不同的领域构建其专属的语言,这对于包括 C++ 来说的每一个语言都可以合理的找到自己的归宿。
2022-09-22 19:53
1
举报
Stroustrup 还真是在狡辩。在我看来一个语言应该 从语言本身来提供安全性,不应该是通过布丁或者约定的方式来防止安全。如果需要约定那说明这个语言太灵活了,过度的灵活意味着很低的安全性。
2022-09-22 19:51
1
举报
编程语言自从上世纪50年代开始至今,根本就没有进步过。甚至很多语言现有的特性都是只其中一部分
2022-09-22 11:14
1
举报
老实说,在编程领域,已经很久没有新的概念了,已有的概念都是老前辈的概念,一个40多年的mvc,用到现在,哈哈
2022-09-22 08:58
1
举报
长江后浪推前浪,前浪倒在沙滩上。前浪不想倒在沙滩上,说来说去都是浪。
2022-09-22 08:45
1
举报
6 收藏
分享
10 评论
6 收藏
分享
返回顶部
顶部