第二点是,如果总是把语言功能限制在一些有限的、更安全的范围内,或者用一些自定义的东西取代核心功能(例如 malloc 或编译器) 。这就把你能使用的库限制在那些使用功能集的库上,并要求你无限期地维护这些核心功能 。即便如此,你也不会得到 "真正的 "安全,因为这取决于每个人都很小心、不使用错误的功能、编译器,而你又非常确定你的核心实现本身是安全的 。
因此,如果你全力以赴,与其需要一个特定的编译器,再加上一套不同的核心语言特性,再加上你需要确保所有的支持库都符合要求,再加上需要为静态分析和编译工具链定制支持工具,倒不如直接用一种新的语言,Rust 便是不错的选择 。

文章插图
Rust 是未来,但任重而道远
「弃用 C、C++,扶持 Rust」的争论经过几年的发酵持续到现在,愈演愈烈 。与此同时,推动软件开发向使用内存安全语言发展的队伍也从最初微软、Google、亚马逊等大厂的倡议,逐渐拓展到具体的开发者们以及学术界,现如今也包括了 NSA 在列 。
NSA 表示,使用内存安全语言可以帮助防止程序员引入某些类型的内存相关问题 。
内存是作为计算机语言的一部分自动管理的,它不依赖于程序员添加代码来实现内存保护 。内存管理通常是使用编译和运行时检查机制来实时自动保护 。使用更加安全的语言,如 C#、Go、Java、Ruby、Rust、和 Swift 等语言,可以一定程度上保护程序员不会无意中引入内存管理错误 。
不过,罗马并非一日之功 。
要想用 Rust 将 C、C++ 取而代之,也需要很长的一段时间,为此 C++ 之父 Bjarne Stroustrup 在回应 C++ 与 Rust 之争时分享道,“直接替换 C++ 代码,或者让它们变得更加安全都是一项非常艰巨的任务,需要逐步慢慢地才能做到这一点 。否则大量不安全的 C++ 代码将会永远存在 。”
网络安全公司 Acronis 的 CISO Kevin Reed 在接受外媒 The Register 采访时也说道,“多年来,使用 C 和 C++ 编写的代码数量巨大,即使我们明天都开始使用 Rust 和 Go,也需要几十年的时间才能清理这个烂摊子 。”
参考资料:
https://langui.sh/2021/12/13/Apple-memory-safety/
https://www.theregister.com/2022/11/11/nsa_urges_orgs_to_use/
【美国国家安全局督促弃用 C/C++,使用更安全的 Rust、C# 等】
推荐阅读
- 巴西博物馆大火央视记者 巴西国家博物馆发生大火
- 应宝林|国家一级演员,应宝林,凭一句脏话,爆红网络,无戏可拍沦为网红后
- 法国国家队主教练德尚透露2022年世界杯上姆巴佩的关键战术计划
- iPhone苹果商店如何修改国家和地区
- 美国承认ufo的确存在 美国首次承认ufo存在
- 2024年奥运会在哪个国家举办2020 2024年奥运会在哪个国家举办 北京
- 列入国家非物质文化遗产的传统节日有哪些 中国非物质遗产文化的节日是哪个
- 亚洲人口最多国家 亚洲人口最多的国家是哪个国家
- 东南亚自古以来就是中国领土 假如东南亚成为一个国家
- 国家标准篮球场地尺寸 国家标准篮球场尺寸和面积图
