你听说了吗?美国政府最近出了一个报告,想让开发者们停止使用 C 和 C++ 编程语言。
报告说C/C++语言不够安全,因为它们在处理内存方面容易出错,这可能会导致安全漏洞。
用过C/C++的知道,缓冲区溢出和空指针的问题,这些都可能让恶意软件有机可乘。
因为C/C++的一些核心特性,允许程序员使用指针,直接操作内存地址。
这种能力虽然让底层操作变得简单,但同时也带来了风险,因为指针的不当使用可能会引发一系列内存安全问题,比如无效指针、内存泄露或者数组越界。
在C和C++的世界里,内存的分配和释放都需要程序员亲力亲为。这就要求程序员必须精确控制内存的使用,任何疏忽都可能导致内存泄露或者指针悬空。
此外,C和C++的数组和指针没有内置的边界检查,这可能导致数组越界错误,进而引起程序崩溃或出现不可预测的行为。
而且,与一些现代编程语言不同,C和C++没有自动垃圾回收功能,所以程序员必须手动处理内存的分配和回收,这无疑增加了出错的可能性。
报告说这是为了保护国家安全,因为这些漏洞在过去几十年里已经引发了不少大问题。比如,微软发现从 2006 到 2018 年,每年 CVE 的漏洞中约 70% 是内存安全问题。
还有 Google Chromium 项目也是,大约 70% 严重性安全错误是内存不安全问题(即 C/C++ 指针错误)。
所以,美国白宫的国家网络主任办公室(ONCD)建议开发者们转用那些内存更安全的编程语言,比如Rust、Go、C#、Java、Swift、JavaScript和Ruby。报告还提到,硬件也应该采用内存安全的语言,因为这样可以减少出错的可能性。
但是,现实情况是,看看 TIOBE 编程语言排行榜公布的 2024 年 2 月榜单。哈哈,C/C++基本是长年位居TOP5的语言。
C和C++在TIOBE排行榜上稳坐热门宝座,可以说是UNIX、操作系统的基石,也是游戏开发、AI和机器学习底层架构的中坚力。
要想仅用内用内存安全的帽子就想干掉C/C++,我感觉有点像是在做梦吧!
我估计很多是不会买账的,这是对C++这门语言的不公平的对待。要知道,C++有很多现代特性可以帮助提高安全性,而且很多安全问题其实是由于编程不当造成的。
C++这个曾经的系统编程之王的语言,是否能够适应新时代的挑战,还是会被新兴的语言所取代?你又是怎么看待的呢?
2023年12月全球手游下载TOP10,印度7.32亿次位居榜首