近日,Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 在其社交账号上发布动态称,开发人员是时候停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。
“说到语言,现在是时候停止用 C/C++ 启动任何新项目了,并在那些需要使用 non-GC 语言的场景中使用 Rust。为了安全性和可靠性,业界应该宣布弃用这些语言。”
C++ 之父回应
针对 Mark Russinovich 的言论,外媒 The Register 采访了 C++ 之父 Bjarne Stroustrup;Stroustrup 则为 C++ 进行了辩护:
“人们 -- 尤其是一些高管 -- 总是会迷恋那些承诺会使他们的生活更轻松的新事物,这是很正常的。而且,支持新事物远比解决旧的和众所周知的工具的已知问题更令人兴奋。不幸的是,新的语言通常需要多年的时间和重大的努力,才能在其广泛的应用领域中与成熟的语言相媲美。发烧友们很少看到这一点,他们的评论往往是相当片面的”。
Stroustrup 表示,考虑到安全性的重要程度,多年来他一直在致力于提高 C++ 的安全性;从而现在在 ISO C++ 中实现了可靠的完美类型和内存安全。也就是说,每个对象都根据它定义的类型来使用;这意味着消除了 dangling pointers 的使用、捕获范围错误并消除了数据争用。
他还强调称,包括 Rust 在内的每一种 “安全” 语言都存在着允许不安全代码的漏洞。并谈到了他参与编写的 C++ Core Guidelines,这份指南的基本思想是定义一套为保证安全而必须遵守的规则,然后通过静态分析来强制执行。而之所以需要这些规则,就是因为任意的 C 或 C++ 代码本身都无法自证安全。
凡注有"环球传媒网"或电头为"环球传媒网"的稿件,均为环球传媒网独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"环球传媒网",并保留"环球传媒网"的电头。