C++ 的创建者批评强加安全编程语言

C++ 语言的创建者 Bjarne Stroustrup 发表了对 NSA 报告结论的反对意见,该报告建议组织放弃 C 和 C++ 等编程语言,因为这些语言将内存管理留给了开发人员,而倾向于使用其他语言​​例如 C#、Go、Java、Ruby、Rust 和 Swift,它们提供自动内存管理或执行编译时内存安全检查。

Stroustrup 表示,在他看来重要的应用程序中,NSA 报告中提到的安全语言实际上并不优于 C++。 特别是,近年来制定的使用 C++ 的基本建议(C++ 核心指南)涵盖了安全编程方法,并规定了保证类型和资源安全工作的工具的使用。 这为不需要如此严格的安全保证的开发人员提供了继续使用旧开发方法的选择。

Stroustrup 认为,遵循 C++ 核心准则的良好静态分析器可以为 C++ 代码的安全性提供必要的保证,而成本比迁移到新的安全编程语言要低得多。 例如,大多数核心指南已在 Microsoft Visual Studio 中包含的静态分析器和内存安全配置文件中实现。 Clang tidy 静态分析器中也考虑了一些建议。

美国国家安全局的报告还被批评只关注内存问题,而忽略了许多其他影响安全性和可靠性的编程语言问题。 Stroustrup 将安全性视为一个更广泛的概念,其不同方面可以通过编码风格、库和静态分析器的组合来实现。 为了控制确保使用类型和资源的安全性的规则的包含,建议在代码和编译器选项中使用注释。

在性能比安全性更重要的应用中,这种方法允许选择性地应用仅在需要时保证安全性的功能。 安全工具也可以逐步应用,例如从范围检查和初始化规则开始,然后逐渐使代码适应更严格的要求。

来源: opennet.ru

添加评论