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

被批复杂、不安全,争议下的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-07-22 08:36:17
突发!东莞两家30多年港资工厂同时宣告停产,近300名职工面临失业,未提及经济补偿

突发!东莞两家30多年港资工厂同时宣告停产,近300名职工面临失业,未提及经济补偿

火山詩话
2026-07-22 06:38:03
英国前首相约翰逊放话:美国有英国撑腰,再来一百年中国也追不上

英国前首相约翰逊放话:美国有英国撑腰,再来一百年中国也追不上

风流女汉
2026-07-22 09:47:30
后续!广东1岁半男童被水冲走:外公当场发火,目击者透露更多

后续!广东1岁半男童被水冲走:外公当场发火,目击者透露更多

观察鉴娱
2026-07-22 09:44:48
女解说刘畅:最后两天只睡了三小时,感谢这个有世界杯的夏天

女解说刘畅:最后两天只睡了三小时,感谢这个有世界杯的夏天

懂球帝
2026-07-21 14:46:31
冉莹颖此前的诉苦事件突然反转,知情人曝出破产真实缘由,她曾和圈内老总交往十分紧密

冉莹颖此前的诉苦事件突然反转,知情人曝出破产真实缘由,她曾和圈内老总交往十分紧密

手工制作阿歼
2026-07-22 02:49:34
复旦大学王德峰教授说:“我的儿子,从小念最好的幼儿园,最好的小学,最好的中学,最后却只上了二本。 ”

复旦大学王德峰教授说:“我的儿子,从小念最好的幼儿园,最好的小学,最好的中学,最后却只上了二本。 ”

LULU生活家
2026-07-20 20:43:00
王晶追忆谢贤

王晶追忆谢贤

南方都市报
2026-07-22 08:47:39
同样是1.5匹,为什么小米空调只要1800,格力却要3200元?

同样是1.5匹,为什么小米空调只要1800,格力却要3200元?

辉哥说动漫
2026-07-19 21:50:15
她被前夫李敖骂了30年,却选择沉默,直到30年后她说:我可怜他

她被前夫李敖骂了30年,却选择沉默,直到30年后她说:我可怜他

玥来玥好讲故事
2026-07-20 20:55:52
《八仙》逆跌破亿狂揽15亿,《功夫女足》压不住,黑马爆了

《八仙》逆跌破亿狂揽15亿,《功夫女足》压不住,黑马爆了

喜欢历史的阿繁
2026-07-20 17:09:18
这很科学:89%的人幻想过同时和多人发生性行为,算精神出轨吗?

这很科学:89%的人幻想过同时和多人发生性行为,算精神出轨吗?

宇宙时空
2026-05-26 18:20:10
假如解放军收复台湾时,日本武力介入,我国是否有权轰炸日本?

假如解放军收复台湾时,日本武力介入,我国是否有权轰炸日本?

调侃国际观点
2026-07-22 01:16:09
零点电台记者:穆帅已告知劳阿不在计划内,并希望签下罗德里

零点电台记者:穆帅已告知劳阿不在计划内,并希望签下罗德里

懂球帝
2026-07-22 07:16:10
10万入场费的“换妻”盛宴:记者冒死暗访,组织者3年狂赚2亿

10万入场费的“换妻”盛宴:记者冒死暗访,组织者3年狂赚2亿

说点事
2026-07-16 11:29:11
CBA狂野一日!2笔重磅交易诞生,6人完成签约,徐杰林葳互换被辟谣

CBA狂野一日!2笔重磅交易诞生,6人完成签约,徐杰林葳互换被辟谣

多特体育说
2026-07-21 22:09:10
黄仁勋:拿到世嘉500万美元投资时,英伟达只剩6个月

黄仁勋:拿到世嘉500万美元投资时,英伟达只剩6个月

固件更新中
2026-07-21 10:37:17
杜锋爱将加盟广州队!球迷:广东队亏大了

杜锋爱将加盟广州队!球迷:广东队亏大了

体育哲人
2026-07-21 22:29:36
正式退场!汽车3大“反人类设计”被国家封杀!特斯拉全中招

正式退场!汽车3大“反人类设计”被国家封杀!特斯拉全中招

另子维爱读史
2026-07-20 21:34:37
谢贤去世前张柏芝火速安排大儿子提前返港陪伴爷爷,谢贤曾多次公开称赞张柏芝“把孩子教得很好”

谢贤去世前张柏芝火速安排大儿子提前返港陪伴爷爷,谢贤曾多次公开称赞张柏芝“把孩子教得很好”

鲁中晨报
2026-07-21 16:28:16
2026-07-22 12:12:49
CSDN incentive-icons
CSDN
成就一亿技术人
26772文章数 242308关注度
往期回顾 全部

科技要闻

怕了?美财长扬言:严查中国AI

头条要闻

伊朗无人机让美军工巨头坐不住 逼出"半价"爱国者导弹

头条要闻

伊朗无人机让美军工巨头坐不住 逼出"半价"爱国者导弹

体育要闻

“不会进球”的前锋,在世界杯决赛进球了

娱乐要闻

谢贤离世风波再起!王菲探望细节曝光

财经要闻

被误伤的A股:韧性、预期与底气

汽车要闻

WAIC专访|易启未来余志勇:网易孵化按摩机器人 能识穴会“手法”

态度原创

家居
艺术
数码
公开课
军事航空

家居要闻

2026建博会(广州) 公装联探展交流活动

艺术要闻

王力克 2026油画风景写生新作

数码要闻

299元 小米蓝牙音箱C紫色款开售:18W扬声器 14小时续航

公开课

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

军事要闻

美伊再开打 战局出现新变化

无障碍浏览 进入关怀版