C++ 之父反驳白宫观点


白宫国家网络主任办公室 (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++ 标准委员会中的许多人也认同这一点。

相关阅读:

  • 白宫敦促开发者改用内存安全的编程语言
  • 美国 CISA 建议放弃 C/C++,消除内存安全漏洞
  • C++ 之父:Rust 等内存安全语言的安全性并不优于 C++
  • 美国国家安全局建议从 C/C++ 切换到内存安全语言

相關推薦

2022-07-27

避免的在 C++ 社区中引发了很多讨论,同时也引来了 C++ 之父 Bjarne Stroustrup 的回应。 在被外媒问及 Carbon 的的可行性时,Bjarne 回答称: “总是有新的语言试图成为 C++ 的继承者。我欢迎对编程语言和编程风格的实验,但并

2023-02-03

语言 (如 C#、Rust、Go、Java、Ruby 或 Swift) 之后。C++ 之父 Bjarne Stroustrup 回应称,在他看来,NSA 报告中提到的“安全”编程语言在重要应用程序中实际上并不优于 C++。 Bjarne 指出,NSA 的这一判定忽略了 C/C++ 三十多年来

2022-09-22

,但并未得到回复。 同时,该网站还就此事采访了 C++ 之父 Bjarne Stroustrup;Stroustrup 则为 C++ 进行了辩护: “人们--尤其是一些高管--总是会迷恋那些承诺会使他们的生活更轻松的新事物,这是很正常的。而且,支持新

2023-08-28

8 月 26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>> Modular AI 公司近日宣布成功融资 1 亿美元,这是继去年 3000 万美元融资之后的第二轮融资。 Modular AI 是 Chris Lattner 和 Tim Davis 于 2022 年创立的公司,目标是自下而

2023-08-29

8 月 26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>> 1985 年,Bjarne Stroustrup 首次发布 C++ 编程语言;38 年后的今天,他在与 Honeypot.io 平台的简短采访中提出了自己的一些人生建议。并调笑称,“提供建议很难,至少和接

2022-03-24

Firefox 制造商 Mozilla 推出,由 web 领域领军人物、JavaScript 之父 Brendan Eich、Dave Herman 、Graydon Hoare 合力开发。Mozilla 用它开发了实验性的渲染引擎 Servo,并将其部分 Css 渲染组件如 整合到 Firefox 浏览器中。 Mozilla 最初的计划是用 Ru

2022-08-09

Redis 在现实世界中的运行方式”的说法,Reddit 上有网友反驳称: 它绝对代表了现实世界中普通用户运行 Redis 的方式。"在单台机器上运行集群,以便能够使用超过 1 个 core"是额外的复杂性,人们只有在别无选择的情况下才会

2022-02-24

是用 Java 编写的,“我喜欢 Java 这种语言,Scott (ASP.NET 之父、现任微软副总裁)也是。”因此,Anders 和 Scott 也成为了微软内部首批采用 VB 团队 CLR 技术的开发人员,并推动了 .NET 项目的创建。  前文提到的 Anders Hejlsberg

2023-09-05

限公司(简称“深开鸿”),出任 CEO。 正是有了“鸿蒙之父”的亲自答复,外界几乎可以肯定:明年会有鸿蒙版 PC 操作系统问世。 今年 2 月份,鸿蒙生态企业 ——软通动力子公司鸿湖万联的工程师完成了 OpenHarmony 对 PC

2022-02-23

Vim 之父 Bram Moolenaar 在邮件列表宣布了核心维护者 Sven Guckes 去世的消息。 邮件正文显示,Sven Guckes 于 2022 年 2 月 20 日在柏林去世。他在 2021 年 12 月被诊断出患有脑瘤,由于外科医生对此无能为力,Sven 在 1 月底被转移到

2023-07-23

C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的开源项目——TypeChat,它通过 AI 在自然语言和应用程序模式 (application schema),以及 API 之间构建了一座“桥梁”。 简单来说,TypeChat 是一个可以用“人话”来构建类型安全 UI

2022-09-06

Node.js 之父 RD 近日发文呼吁 Oracle 释放 "JavaScript" 商标。 据介绍,1995 年,Netscape 与 Sun Microsystems 合作创建了可互动的网站。工程师 Brendan Eich 花费 10 天时间就创建了第一个版本的 JavaScript,这是一门动态编程语言,其语法

2022-12-16

-2 语言前端代码也已经完成合并。 Modula-2 是 Pascal 语言之父 Niklaus Wirth 在 1980 年代开发的语言之一,作为一种过程编程语言,Modula-2 继承了 Niklaus Wirth 早期在 Modula 语言和最著名的 Pascal 上的工作,随后 Modula-2 又被 Modula-3

2023-11-23

Redis 创始人 antirez 最近开源了一个小项目 BOTLIB —— 纯 C 语言代码编写的 Telegram Bot 框架 。 地址:https://github.com/antirez/botlib 顾名思义,BOTLIB 用于创建 Telegram 对话机器人。目前该项目仍处于开发阶段,请谨慎使用