C++之父反驳白宫,称拜登政府忽视了现代C++编程语言的优势

科技   2024-03-28 09:26   浙江  
转自:OSC开源社区(ID:oschina2013)
白宫国家网络主任办公室 (ONCD) 此前曾发布了一份报告,呼吁科技界主动减少网络空间的攻击面;通过改用 Rust 等内存安全编程语言、避免使用 C++ 和 C 语言等易受攻击的语言,以减少内存安全漏洞的数量来提高软件安全性。
C++ 之父 Bjarne Stroustrup 在日前与 InfoWorld 的采访中针对白宫的这些言论进行了反驳。
“我感到惊讶的是,这些政府文件的作者似乎对当代 C++ 的优势和提供强大安全保证的努力视而不见。另一方面,他们似乎已经意识到,编程语言只是工具链的一部分,因此改进工具和开发流程至关重要。”
Stroustrup 指出,安全性改进始终是 C++ 开发工作的目标。从 C++ 诞生的第一天起,提高安全性就一直是 C++ 的目标。只要将 K&R C 语言与最早的 C++、早期的 C++ 以及当代的 C++ 进行就能看出差别。
许多高质量的 C++ 都是使用基于 RAII (Resource Acquisition Is Initialization)、容器和资源管理指针的技术编写的,而不是传统的 C-style pointer messes。
Stroustrup 还列举了为改善 C++ 安全所做的一系列努力。

与安全有关的问题有两个。在数十亿行的 C++ 中,很少有完全遵循现代准则的,而且人们对安全的哪些方面是重要的概念也不尽相同。我和 C++ 标准委员会正在努力解决这个问题。

Profiles 是一个框架,用于指定一段代码需要什么保证,并启用实现来验证它们。委员会网站上有描述这一点的文件(可查看 WG21),并且还会有更多文件。然而,我们中的一些人没有心情等待委员会必然缓慢的进展。

Profiles 是一个框架,允许我们逐步改进 guarantees —— 例如,相对较快地消除大多数 range errors,并通过本地静态分析和最少的运行时检查逐步将 guarantees 引入大型代码库。

我对 C++ 的长期目标一直是在需要的时候提供类型和资源安全。也许当前对内存安全的推动 —— 我想要的 guarantees 的一个子集 —— 将有助于我的努力,C++ 标准委员会中的许多人也认同这一点。

Stroustrup此前针对 NSA 捍卫了 C++ 的安全性表示赞赏,但之后 NSA 在2022 年 11 月的公告中,建议开发者使用内存安全语言,而不是 C++ 和 C。

相关链接

https://www.infoworld.com/article/3714401/c-plus-plus-creator-rebuts-white-house-warning.html

推荐阅读  点击标题可跳转

1、libc.so.6小入门

2、C语言 手撕一个HashMap

3、回调函数(callback)是什么?一文理解回调函数(callback)

CPP开发者
我们在 Github 维护着 9000+ star 的C语言/C++开发资源。日常分享 C语言 和 C++ 开发相关技术文章,每篇文章都经过精心筛选,一篇文章讲透一个知识点,让读者读有所获~
 最新文章