C++ 阅读时间 3 分钟

又一家科技巨头加入弃用 C++ 的行列:我们该如何阻止这一迁移进程?

分享本文
Another big tech company joins the move away from C++ initiative: How can we stop this migration process?

背景

2011 年标志着 C++ 的复兴,C++11 的发布引入了众多现代化特性,如 lambda 表达式、智能指针和更高效的标准库。然而,十年之后,谷歌、微软、亚马逊、苹果和 Meta 等科技巨头正在启动迁离 C++ 的进程。这一转变凸显了人们对内存安全日益增长的担忧,以及系统编程领域格局的演变。

就在最近,又一家大公司加入了"弃用 C++"的行列:苹果公司,它建议用 Swift 替代 C++的进程。

有人可能会说,问题不在于 C++ 本身,而在于使用它的开发者。然而,现实是大公司正在逐渐弃用 C++。

科技巨头与弃用 C++ 的趋势

亚马逊

亚马逊正在积极推动在其许多关键系统中用 Rust 替代 C++。重点在于利用 Rust 的内存安全和并发特性来提升其基础设施的可靠性和安全性。

亚马逊最近授予 Niranjan Balasubramanian 和 Michalis Polychronakis 两位教授奖项,以表彰他们在自动化将 C++ 代码转换为 Rust的进程。

微软

微软已开始从 C++ 向 Rust 过渡的进程,特别是对于那些安全和性能至关重要的系统。Azure 云平台和各种内部工具等项目正在探索 Rust 防止内存相关漏洞的能力。

微软正在积极扩大其对Rust 编程语言的采用

谷歌也在某些应用中处于用 Rust 替代 C++ 的早期阶段。这一决定源于增强内存安全、降低手动内存管理可能带来的安全缺陷风险的需求。

谷歌正在大力投资,从 C++ 迁移到 Rust的进程。

苹果

苹果的策略是弃用 C++,转而采用 Swift。Swift 提供了现代、安全且高性能的环境,适合许多以前依赖 C++ 的苹果应用和服务。

最近,苹果建议用 Swift 替代 C++的进程。

Meta

Meta(前身为 Facebook)正在探索将 Rust 作为其后端系统的 C++ 替代方案。重点是通过采用 Rust 的安全并发和内存管理特性来提高其基础设施的安全性和健壮性。

Meta 已开始推进从 C++ 迁移到 Rust的进程。

内存安全之争

历史背景

多年来,尽管 C++ 在性能关键型应用中被广泛使用,但 C++ 社区和标准委员会并未将内存安全置于优先位置。这种重视不足导致了许多备受瞩目的漏洞和安全事件。

行业回应

科技行业弃用 C++ 的部分原因正是对这些内存安全问题的回应。各公司认识到,即使是资深的 C++ 开发者也可能无意中在代码中引入严重的内存问题。这推动了 Rust 等提供编译期内存安全保证的语言的采用。

挑战与阻力

尽管更安全的语言有明显的好处,C++ 社区内部仍存在抵触情绪。一些人认为,恰当的编码实践和严格的测试可以缓解内存问题,他们认为迁移到其他语言并无必要。然而,行业趋势表明,对内置安全机制的需求正日益被视为优先事项。

尚无最终解决方案

从 C++ 迁出的过程复杂而渐进。虽然这一过渡已经开始,但鉴于庞大的 C++ 代码库以及许多用 C++ 编写的系统的关键性质,全面迁移可能需要数年甚至数十年。这个过程不仅涉及重写代码,还需要在新的语言环境中确保兼容性、性能和可靠性。

与此同时,C++ 委员会必须在这个重大安全问题上找到最终解决方案,以免迁移进程全面加速。

结论

科技巨头纷纷用 Rust 和 Swift 等更安全的替代方案取代 C++,凸显了软件行业优先事项的重大转变。内存安全已成为关键关切,提供内置安全特性的语言正在获得青睐。虽然迁移正在进行中,但完全弃用 C++ 需要多长时间、对软件开发的长期影响将如何,仍有待观察。


分享本文