Herb Sutter 6 月 4 日发文称,纪录片《C++: The Documentary》已在 YouTube 首播。他本人参与了首播直播聊天,并推荐还没看的开发者找时间观看。
这件事有意思的地方,不是“又有一部技术纪录片上线”。真正值得看的是:一门常被嫌复杂、古老、包袱重的语言,为什么还能在 2020 年代继续吸引新开发者。
影片不是标准委员会发布,也不能理解成官方背书。它更像几位长期参与者,把 C++ 四十年的关键拐点重新摆到一张桌面上。
这部片子真正讲的不是上线,而是 C++ 怎么长成今天这样
影片覆盖了 Bjarne Stroustrup、Alexander Stepanov、Brian Kernighan、Chris Lattner、Herb Sutter 等人物。
这个名单不是 C++ 贡献者大全。它的价值在于足够支撑一条主线:C++ 不是靠一次发明定型,而是在语言设计、编译器、标准库、委员会治理和产业需求之间反复折中。
| 线索 | 影片中的事实锚点 | 对今天的解释 |
|---|---|---|
| 起源 | AT&T Bell Labs、C with Classes、CFront | C++ 一开始就在 C 的效率和更高抽象之间找平衡 |
| 标准化 | STL、C++98、ISO C++ 委员会 | 标准化解决了碎片问题,也让演进必须背着兼容性前进 |
| 扩散 | CERN、游戏、交易系统 | C++ 的生命力主要来自高性能场景,不是来自学习门槛低 |
| 现代化 | C++11、Modern C++、未来挑战 | 语言在补工具和写法,但复杂性也随版本继续累积 |
这也是纪录片比普通“语言回顾”更有用的地方。它没有只讲发明者和版本号,而是把 C++ 放回工程现场。
CERN、游戏引擎、交易系统这些场景,都有一个共同点:性能、延迟、既有代码和工具链惯性都很硬。换语言不是换皮肤,而是重走一遍成本账。
对 C++ 开发者来说,这能解释很多日常困惑。为什么标准推进慢,为什么工具链有历史痕迹,为什么一些看起来别扭的设计一直存在。很多问题不是没人看见,而是改动代价太高。
C++ 的增长要看边界,别读成“全面回潮”
Herb Sutter 引用 SlashData Q3 2025 数据称,C++ 在过去 3.5 年用户增长约 90%,并称它是全球前四大语言中增长最快的一门。
这个说法需要加边界。
它不是“C++ 用户数全球第一”。也不能推出“所有团队都该回到 C++”。它更能说明一件事:当本地计算、高性能、低延迟、基础设施需求重新升温时,C++ 仍然有新增吸引力。
横向看,C++ 今天面对的参照物变了。
Java、C# 长期在企业应用和开发效率上占优势。Rust 则用内存安全和现代工具链,直接挑战 C++ 在系统编程里的位置。C++ 的底牌仍是生态厚度、ABI 惯性、成熟编译器和大量现存代码。
短板也很清楚:学习曲线陡,历史包袱重,安全问题难以一次性抹平。
C++11 是片中很重要的节点。它把智能指针、移动语义、lambda、并发库等能力推向主流实践,让开发者能用更现代的方式写 C++。
但现代 C++ 不是“简单版 C++”。它降低了一部分错误,也带来了更多写法选择。委员会越要向前兼容,语言越难轻装上阵。
这就是 C++ 的现实处境:它不是靠怀旧活着,而是靠工程沉没成本和性能需求活着。强是真的,重也是真的。
开发者和团队该怎么用这部片子
这部纪录片最适合两类人看。
一类是 C++ 开发者,尤其是刚进入大型代码库的人。它能帮你把很多“为什么会这样”的问题接上历史线索。看完不一定写得更快,但会少一点把历史遗留误判成单纯设计失误。
另一类是正在做技术选型的团队。影片不能替代评估,但能提醒团队别只按语言口碑决策。
如果团队做的是 Web 后端、普通业务系统,C++ 的增长故事未必改变技术栈。采购和平台选型也不该因为一部纪录片就调整。
如果团队在游戏引擎、仿真、编译器、交易、嵌入式或高性能计算里,动作会更具体:新项目可以更谨慎地比较 C++ 与 Rust 等方案;老项目则更可能继续投入工具链、代码规范和安全改造,而不是贸然迁移。
接下来该看三个变量,而不是只看播放量。
| 变量 | 关键问题 | 对开发者和团队的影响 |
|---|---|---|
| 标准演进 | 能否继续降低安全和复杂性成本 | 决定现代 C++ 能不能继续吸引新人 |
| 工具链体验 | 编译器、包管理、构建系统能否更顺 | 决定新团队采用 C++ 的摩擦有多大 |
| 竞争语言落地 | Rust、Carbon、Mojo 等能否进入真实大型系统核心区 | 决定 C++ 的地盘是被缓慢切走,还是继续共存 |
目前能看到的是竞争加剧,还看不到 C++ 被迅速替代的证据。
这部片子把问题拉回了一个朴素判断:C++ 的未来不取决于它是不是“老”,而取决于它能不能继续把性能、兼容和可维护性这三件事勉强拧在一起。
这很难。
但 C++ 过去四十年,恰恰就是这么走过来的。
