网易首页 > 网易号 > 正文 申请入驻

被批复杂、不安全,争议下的C++还值得学吗?

0
分享至

在编程语言的世界里,C++ 的名声总是伴随着争议。一方面,它被指责复杂、难学、容易“坑到自己”;另一方面,它又是支撑现代计算生态的核心力量——从浏览器到游戏引擎,再到金融与 AI 系统,都离不开它。随着 Rust 等新兴语言的崛起,关于“C++ 是否过时”“Rust 是否会取而代之”的讨论愈发激烈。但如果深入剖析,我们会发现,C++ 依然在不断演进,并在众多关键领域保持不可替代的地位。

原文链接:https://dayvster.com/blog/in-defense-of-cpp/

作者 | Dayvi Schuster 责编 | 苏宓

出品 | CSDN(ID:CSDNnews)

C++ 经常被人批评,说它太复杂、学习曲线陡峭,更重要的是,它容易让程序员自己“挖坑”。不过,这些批评真的有道理吗?

在这篇文章里,我想针对 C++ 最常见的批评做一些分析,同时给出它的优缺点的平衡看法。

C++ “太复杂”

确实,C++ 是一门复杂的语言,功能多、特性多。你想在 C++ 里实现一件事,可能有十几种不同的方法,每种方法都有自己的优缺点。那程序员怎么知道哪种方法最适合自己的场景呢?是不是非得对语言有非常深入的理解才能做出决定?

其实也不完全是这样……当然,理解语言对你的应用一定有帮助,但这不是硬性要求。过早优化是万恶之源,在 C++ 里,你完全可以写出简单、可读、易维护的代码,而不用动用模板、运算符重载或者其他高级特性。

很多人觉得,写程序一定要用最“正确”、“高效”的方式。Python 有它的 Pythonic 风格,Java、C#、Go 也各有一套。甚至像在浏览器里渲染 HTML 这样的简单操作,也会每隔几年被重新争论一次。但实际上,大多数情况下,并不存在唯一正确的方法。所谓的“最佳方案”,往往只是个人或团队的偏好而已。认为只要写出了“最佳代码”,就永远不需要维护,这完全是错的。

与其过度纠结“最佳方法”,不如更关注代码是否易读、易理解。只要做到了这一点,基本就没问题。

C++ 已经“过时”

C++ 的确很老了,它诞生于 1985 年——那比第一版 Windows 的发布还要早上 4 年,比第一版 Linux 早 6 年,甚至比最后一批 8 位计算机的出现还早。按年头算,它确实老了。不过,这就意味着它过时了吗?

绝对不是!C++ 从 1985 年发布至今一直在发展改进,新增特性不断。最新的 C++20 标准是在 2020 年发布的,引入了很多新特性;C++23 进一步增强了标准库和 constexpr 功能,还扩展了 concepts、ranges 和 coroutines,让 C++ 更现代、更强大、更灵活。

有人会说,C++ 过时是因为别的语言给开发者带来了更好的体验。

这个嘛,也很主观。C++ 依然是最广泛使用的编程语言之一,拥有庞大的库和工具生态系统。从游戏开发到高性能计算,再到嵌入式系统,C++ 都在大量应用。世界上很多最流行、使用最广的软件都是用 C++ 写的。

总的来说,要说 C++ 过时,那你得非常勉强地去定义“过时”。

终于说到近期讨论度最高的问题了。很多人会把 C++ 和 Rust 做对比,因为 Rust 是一门“内存安全”的语言,很多人认为它应该替代 C++。

先说重点:

把 C++ 代码库改写成 Rust 后,确实更容易避免内存问题。

很多公司也表示,他们通过把 C++ 改写成 Rust,减少了安全漏洞、内存泄漏和 bug 的数量。

但这真的是因为 Rust 本身吗?部分原因是没错,但我觉得更大的原因是——任何一次对已有代码库的重写,都比原来的版本更容易出问题更少

重写代码时,你有机会重新思考和设计架构、修复 bug、提高代码质量。你可以利用之前版本的教训,把原来不好修的毛病都解决掉。就像你当年建了一个小木屋,当时不懂木工,房子有点晃、屋顶漏水;几年后你再建一个,这次吸取了教训,建得更结实、耐风雨,换了更好的材料。新木屋更好,是因为你吸取了经验,而不仅仅是换了材料。

所以,我认为很多公司之所以说改写 C++ 为 Rust 后更安全,其实不是因为 Rust 有魔法,而是因为他们重构了代码,吸取了以前的经验教训。

当然,这并不否认 C++ 的确存在安全问题。

C++ 如果不小心写,确实容易出问题。但其实所有语言都可能不安全:Rust 也能写出不安全代码,Python、JavaScript 也能。内存安全只是安全的一方面,光用 Rust 并不能自动让你的应用安全,只是减少了内存泄漏的可能性。

如何让 C++ 更安全?

可以的,C++ 是可以更安全的,甚至可以做到内存安全。比如使用智能指针(smart pointers)、静态分析工具、内存检查工具(memory sanitizer)等。理论上你甚至可以给 C++ 加上垃圾回收器(尽管不建议)。

最简单的方法就是学会用智能指针。智能指针可以自动管理内存,帮你避免内存泄漏和悬空指针,这正是 C++ 的主要批评点所在。

C++ 难读?

那就不要写得那么复杂。C++ 是多范式编程语言,你可以写过程式代码、面向对象代码、函数式代码,或者混合。你完全可以写出简单、可读的 C++,也可以写出复杂难懂的 C++,这取决于个人或团队偏好。

我的经验法则是:尽量让 C++ 看起来像 C,除非必要,不要滥用高级特性。用智能指针,避免裸指针,尽量用标准库。

你完全可以像写 C 一样写 C++,只在真正需要时再引入复杂特性。

有人会问:“这难道不违背了 C++ 的初衷吗?那为什么不用 C 呢?”

C++ 是 C 的超集,你可以写纯 C 代码在 C++ 中运行。C++ 给你更多功能,你可以按需使用,不必一开始就用所有特性。就像建木屋时,你可以先用木头盖屋顶,需要时再加金属屋顶一样。

C++ 生态复杂

C++ 拥有一个庞大的生态系统,几十年来有很多库和工具,这会让新手不知道该选什么。不过,这种问题并非 C++ 独有,每种语言都有类似问题。

其实你只需要遵循一个非常简单的规则:优先使用标准库,它维护得好、功能多。网络、GUI 等特定任务,可以选择知名、维护好的库。

尽量避开使用 Boost。Boost 是一个庞大的库集合,在 C++ 社区中被广泛使用。然而,Boost 中的很多库已经过时,无人维护。同时,这些库也颇为复杂、难用。如果不是大项目,尽量用更现代、更轻量的库,避免增加性能开销和体积膨胀。

C++ 不适合初学者?

编程本身就不简单,任何技能都一样:木工、修车、编程,都是难的。没有一门语言完全适合初学者,每种语言都有取舍。

如果你想学系统编程或游戏开发,光学 Python 或 JavaScript 帮不了太多,最终还是要学 C 或 C++。

如果目标是做网页开发或数据分析,可以先学 Python 或 JavaScript。

如果想找编程工作,学 Java 或 C# 也不错,这些语言经常被误解,但工作机会很多。

总之,初学编程一定会有难度。实际上,我认为从 C 或 C++ 入手,比学那些“隐藏了底层概念”的语言更好。因为你在学习核心概念时,理解还新鲜、灵活,不会等到以后投入很多后才去补这些基础知识。

C++ vs Rust:朋友还是对手?

近几年,Rust 受到了很多人的喜爱,他们也有充分理由。比如,这么语言非常重视内存安全,借助 borrow checker(借用检查器)强制程序员遵守规则,而 C++ 往往把这些安全责任留给程序员自己。不过,Rust 的生态还在建设中,学习曲线同样陡峭,只是挑战方式不同。

C++ 虽然不能完全防止你“自作自受”,但它拥有几十年实战检验的工具链、编译器和库,支撑了从 Chrome 到 Unreal Engine 等大型系统。实际上,很多团队会把 Rust 和 C++ 一起用,而不是把它们当作竞争对手。Rust 在新项目中表现突出,尤其是对安全要求高的场景;C++ 则继续在遗留系统和性能关键领域占据主导。

2025 年 C++ 还在用吗?

答案是:绝对在用!尽管有人说它过时,C++ 依然是世界上使用最广的编程语言之一。主要浏览器如 Chrome 和 Firefox 仍用它开发,游戏引擎 Unreal 也基于它。汽车系统、金融交易平台,甚至一些 AI 框架,都大量依赖 C++ 来保证性能和可控性。新标准(C++20、C++23)不断让语言现代化,确保它能与年轻语言竞争。如果你仔细看我们日常依赖的大型系统底层,几乎总能发现 C++ 在默默运行。

结论

C++ 是一门强大且多才多艺的编程语言,经受住了时间的考验。虽然它有复杂性和挑战,但在今天的技术环境中仍然非常有用且广泛应用。只要方法和心态正确,C++ 不仅可以让开发过程愉快,还能创造出高性能、高效率的应用程序。

所以,下次有人批评 C++ 时,不妨先想想这门老牌语言的优势和能力,再轻易下结论。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
被打女司机耳膜穿孔,警方已经立案,保安恐承担刑责

被打女司机耳膜穿孔,警方已经立案,保安恐承担刑责

映射生活的身影
2026-04-22 21:55:22
伊朗不打算给面子,美军三航母就位,特朗普想把中国拖下水

伊朗不打算给面子,美军三航母就位,特朗普想把中国拖下水

林子说事
2026-04-22 20:10:33
英超太残酷了:随着哈兰德破门+曼城1-0,英超第二支降级球队诞生

英超太残酷了:随着哈兰德破门+曼城1-0,英超第二支降级球队诞生

侧身凌空斩
2026-04-23 04:56:55
高圆圆这腿也太真实了吧!

高圆圆这腿也太真实了吧!

TVB的四小花
2026-04-23 01:53:52
瓜帅:为什么要沮丧?我们现在排名榜首,沮丧根本不存在

瓜帅:为什么要沮丧?我们现在排名榜首,沮丧根本不存在

懂球帝
2026-04-23 05:23:09
无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

蹲坑看世界
2026-04-22 23:00:21
迪丽热巴上学时无人追求,看到她早期照片,网友:这谁敢追啊

迪丽热巴上学时无人追求,看到她早期照片,网友:这谁敢追啊

乔话
2026-04-22 20:36:30
至今,还有13个国家和中国没有建交,他们都是谁?

至今,还有13个国家和中国没有建交,他们都是谁?

深度报
2026-04-22 22:30:57
平顶山学院,请向两年前被开除的保安道歉

平顶山学院,请向两年前被开除的保安道歉

文案的闲话
2026-04-22 16:34:34
三星长公主前夫:离婚拿了8370万挥霍一空,和巫女女友沦为阶下囚

三星长公主前夫:离婚拿了8370万挥霍一空,和巫女女友沦为阶下囚

照见古今
2026-04-22 18:42:23
2-2,1-0!英超悲喜夜!曼城登赢球登顶,利兹联绝平,积分榜更新

2-2,1-0!英超悲喜夜!曼城登赢球登顶,利兹联绝平,积分榜更新

小徐讲八卦
2026-04-23 05:30:34
TVB节目曝光惠州双月湾旅游乱象,相关部门回应了!

TVB节目曝光惠州双月湾旅游乱象,相关部门回应了!

南方都市报
2026-04-22 15:52:16
乌克兰没钱打俄罗斯了?国库见底外援青黄不接,普通人积蓄一夜缩水民不聊生

乌克兰没钱打俄罗斯了?国库见底外援青黄不接,普通人积蓄一夜缩水民不聊生

网易新闻出品
2026-04-22 18:42:46
我有罪,大导演昆汀花1万美金,在包房舔脚半小时,直到皮肤起皱

我有罪,大导演昆汀花1万美金,在包房舔脚半小时,直到皮肤起皱

西楼知趣杂谈
2026-04-20 08:40:47
已确认系淫秽物品!家长赶紧自查

已确认系淫秽物品!家长赶紧自查

深圳晚报
2026-04-22 22:45:45
“东鹏0糖特饮”是商标,客服:商标注册为品牌保护,原罐装0糖特饮已暂停售卖

“东鹏0糖特饮”是商标,客服:商标注册为品牌保护,原罐装0糖特饮已暂停售卖

界面新闻
2026-04-22 21:43:04
19岁女儿挪用父亲公司公款1700万元当“榜一大姐”,父亲带其自首,律师:钱款能否追回和自首无关,关键在打赏是否会被认定为善意取得

19岁女儿挪用父亲公司公款1700万元当“榜一大姐”,父亲带其自首,律师:钱款能否追回和自首无关,关键在打赏是否会被认定为善意取得

极目新闻
2026-04-22 21:48:16
切尔西官宣41岁主帅下课!带队107天+英超遭5连败 解约金1200万镑

切尔西官宣41岁主帅下课!带队107天+英超遭5连败 解约金1200万镑

我爱英超
2026-04-23 00:41:15
央国企的几大乱象:关系户横行、巨大的虚假繁荣......

央国企的几大乱象:关系户横行、巨大的虚假繁荣......

灯锦年
2026-04-22 17:16:25
巴萨1-0赢球,却迎2个坏消息,皇马夺冠希望重燃

巴萨1-0赢球,却迎2个坏消息,皇马夺冠希望重燃

凌空倒钩
2026-04-23 06:28:16
2026-04-23 07:59:00
CSDN incentive-icons
CSDN
成就一亿技术人
26471文章数 242270关注度
往期回顾 全部

科技要闻

对话梅涛:没有视频底座,具身智能走不远

头条要闻

媒体:听到美国要查中国成分 东南亚贸易代表倒吸冷气

头条要闻

媒体:听到美国要查中国成分 东南亚贸易代表倒吸冷气

体育要闻

网易传媒再度签约法国队和阿根廷队

娱乐要闻

蜜雪冰城泰国代言人 被扒出辱华黑历史

财经要闻

医院专家号"秒空"!警方牵出黑色产业链

汽车要闻

纯电续航301km+激光雷达 宋Pro DM-i飞驰版9.99万起

态度原创

教育
健康
本地
艺术
公开课

教育要闻

藏在气象俗语里的地理智慧

干细胞抗衰4大误区,90%的人都中招

本地新闻

春色满城关不住|白鹃梅浪漫盛放,吴山藏了一片四月雪

艺术要闻

蓝得这么美!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版