一、一部属于程序员的史诗
2026年6月4日,一个注定被写入编程史的日子。
Herb Sutter——C++标准委员会前主席、现Citadel Securities技术院士——在他的个人博客上敲下了一行简短的文字:
“C++: The Documentary premiered today on YouTube.”
这行字背后的分量,每一个使用过C++的程序员都能感受到。这不仅仅是一部纪录片的发布,这是对一门走过四十余年风雨的编程语言最完整、最权威的影像记录。
整部纪录片以1小时11分34秒的篇幅,涵盖了从 1983 年贝尔实验室的 “C with Classes” 到 2026 年的现代 C++ 的完整历程。由 CultRepo 频道制作、Hudson River Trading (HRT) 赞助——一家以C++为核心技术的算法交易公司。
而最令人震撼的数字,藏在 Herb Sutter 的博客末尾:
“…as of Q3 2025, the fastest-growing of the top four languages in the world — +90% users in the past 3.5 years.”
3.5 年内用户增长 90%。 一门 40 岁的语言,正以年轻人般的速度逆势狂奔。
二、众神云集:十四位传奇人物
这部纪录片最大的看点,是它请到了C++历史上最重要的14位人物。他们中的每一个,单独拎出来都是一部传奇:
| 姓名 | 身份 | 在C++历史中的角色 |
|---|---|---|
| Bjarne Stroustrup | C++设计者与原始实现者 | 主角。从零创造了这门语言 |
| Alexander Stepanov | STL设计者 | 标准模板库之父,改变了C++的编程范式 |
| Anders Hejlsberg | C#、TypeScript、Turbo Pascal创造者 | C++最具威胁的”对手” |
| Andrei Alexandrescu | Nvidia首席研究科学家 | 《C++现代设计》作者,模板元编程先驱 |
| Andrew Koenig | 贝尔实验室、C++标准委员会创始成员 | C++最早的传播者之一 |
| Barbara Moo | 贝尔实验室C++开发团队经理 | 早期C++团队的幕后推手 |
| Brian Kernighan | 贝尔实验室 | 《C程序设计语言》合著者,Unix先驱 |
| Chris Lattner | LLVM、Clang、Swift创造者(现Mojo) | 现代C++编译器生态的奠基人之一 |
| Danilo Piparo | CERN粒子物理学家 | ROOT框架负责人,C++在科学计算领域的代表 |
| Eric Lubin | HRT首席软件开发者 | 算法交易领域的C++实践者 |
| Gabriel Dos Reis | 微软软件工程师 | C++标准核心贡献者 |
| Herb Sutter | Citadel Securities技术院士 | C++标准委员会荣誉主席,现代C++的推动者 |
| John Romero | id Software联合创始人 | 《Doom》《Quake》的创造者,C++游戏开发的早期实践者 |
| Nina Ranns | ISO C++委员会副主席 | 新一代C++标准制定者 |
这里面每一个人物都引发了社区的热烈讨论。尤其是 Andrei Alexandrescu 的参与让很多老C++开发者欣喜——这位写出了《C++现代设计》和《C++编码规范》的大师,用模板元编程和策略类模式征服了整整一代C++程序员。
John Romero 的出场则让游戏开发者们会心一笑——C++曾是游戏开发无可争议的王者,从《Doom》到《虚幻》到《使命召唤》,C++的血管里流淌着游戏引擎的血液。
而 Anders Hejlsberg 的参与,则意味深长——这位创造了 C#、TypeScript 和 Turbo Pascal 的传奇人物,曾是C++在编程语言战争中最强的对手。
三、全片20章:从实验室到世界的完整叙事
纪录片编排极为用心,20个章节构成了一部完整的编年史:
| 时间戳 | 章节 | 内容要点 |
|---|---|---|
| 00:00 | 开场 | 引言,定调整部纪录片的叙事 |
| 01:50 | AT&T贝尔实验室的发明 | C++的诞生地——贝尔实验室的传奇氛围 |
| 07:30 | C with Classes | 最初的形态:在C语言上加类,初衷是解决大规模软件开发 |
| 09:37 | C with Classes的早期采用 | 最早的勇敢尝试者 |
| 10:53 | 从C with Classes到C++(及CFront) | 第一个编译器CFront的故事 |
| 12:32 | 为什么叫C++? | 命名轶事——C++的++运算符寓意 |
| 13:24 | AT&T开始销售软件 / 另一个团队试图接管C++ | 公司政治与开源精神的早期冲突 |
| 16:08 | AT&T贝尔实验室的早期发展 | 技术之外的生存智慧 |
| 19:10 | “一个充满bug的产品” / Release 2.0.0 | 真实的创业故事——不完美的开始 |
| 21:55 | C++扩展到AT&T之外 | 走出实验室,走向世界 |
| 24:50 | 太多C++版本 | 版本碎片化的混乱年代 |
| 26:03 | 标准化的需要 | 从乱世到秩序的转折点 |
| 29:38 | Alexander Stepanov的STL | 全片最关键的转折点——STL的到来改变了一切 |
| 37:19 | 第一个标准:C++98 | 十年磨一剑,第一个ISO标准诞生 |
| 39:21 | 90年代CERN的C++ | 粒子物理学家与C++的浪漫邂逅 |
| 40:34 | C++扩展到游戏和交易领域 | 两个C++最忠实阵地 |
| 43:00 | 21世纪初的C++寒冬 | Java和C#崛起,C++陷入低谷 |
| 45:34 | 编程语言战争(C#) | 微软的挑战,C++的危机与反击 |
| 49:25 | 再次需要一个高效编程语言 | 性能至上的回归 |
| 52:29 | 现代C++(C++11) | 涅槃重生,C++的新纪元 |
| 56:29 | 标准委员会是否让C++变得太复杂? | 社区内部的自我拷问 |
| 1:00:45 | C++无处不在 | 从金融到游戏到航天到量子计算 |
| 01:05:00 | 未来与挑战 | 安全、兼容、生态——下一站 |
| 01:08:31 | Bjarne的影响 | 终章——Bjarne留给世界的遗产 |
1. 开场:一声叩击编程史的钟声
画面缓缓亮起。没有华丽的特效,没有炫目的旁白。镜头对准的,是贝尔实验室那栋朴素得近乎寒酸的大楼——它看起来不像一个科技圣殿,却孕育了改变人类计算史的三样东西:晶体管、Unix 操作系统、以及 C++。
纪录片以这样一句开场白定调:这不仅仅是一门编程语言的故事,这是一个关于人、关于信念、关于四十年坚持的故事。 开篇用了不到两分钟的篇幅,就让你意识到——你即将看到的,不是一段枯燥的技术编年史,而是一部充满爱、斗争、背叛与复兴的人类戏剧。
2. AT&T 贝尔实验室的发明:一栋大楼里改变了世界的地方
时间倒回到 1979 年。新泽西州默里山,贝尔实验室。
纪录片在这里花了大篇幅展示贝尔实验室的氛围——那是一个学术自由到近乎奢侈的地方。走廊里有下棋的、弹钢琴的、写诗的,和写代码的。这里没有 KPI,没有绩效考核,有的只是人类好奇心驱动的纯粹创造。
Bjarne Stroustrup 当时在实验室的计算机科学研究中心工作。他的办公桌对面是 Dennis Ritchie——C 语言的创造者。隔壁是 Brian Kernighan——Unix 的奠基人之一。纪录片在这里用了一个极其巧妙的镜头:从 Bjarne 的肩膀上看过去,透过窗户,你能看到那棵传说中贝尔实验室的梧桐树——树下,科学家们曾讨论过晶体的能带理论、信息论的基本定理、以及……一个关于”在 C 语言上加一些东西”的疯狂想法。
3. C with Classes:一场务实的革命
1983 年,Bjarne 做了一个决定——不是创造一门全新的语言,而是在 C 语言之上添加类(class)的支持。
这个决定,后来被证明是 C++ 成功的最关键因素之一。
纪录片中 Bjarne 亲自解释:为什么要叫”C with Classes”而不是另起炉灶?因为谦逊,也因为务实。”我当时只有一个简单的想法:让大规模软件开发更高效。我不想创建一个全新的生态系统,我想站在 C 的肩膀上。”
于是,一个被称为”C with Classes”的实验性项目在贝尔实验室的灰色终端机上悄然运行。Bjarne 自己写了一个名为 Cpre 的预处理程序,将带有类的 C 代码翻译为普通的 C 代码,再用 C 编译器编译。这是一个极其简陋的开端——但恰恰是这种”站在巨人肩膀上”的务实精神,让这门语言在后来拥有了无法撼动的根基。
4. C with Classes 的早期采用:第一批敢于吃螃蟹的人
一门没有编译器、没有文档、没有技术支持的语言,会有人用吗?
答案是:有。
纪录片的第四章节讲述了 C with Classes 最早的勇敢尝试者。他们大多是贝尔实验室内部的同事、朋友、以及对 Bjarne 项目感兴趣的极客。Bjarne 一个一个地去找他们:”嘿,我做了个新玩意儿,要不要试试?”
这些早期用户面临着巨大的不确定性:没有 IDE、没有调试器、没有 Stack Overflow。他们有的只是一份 Bjarne 手写的说明文档和一颗探索者的心。但正是这些勇敢的人,用他们的反馈和贡献,帮助 Bjarne 把 C with Classes 从一个个人玩具变成了可用的工具。
5. 从 C with Classes 到 C++(及 CFront):第一个编译器的诞生
1983 年,C with Classes 发布第一个外部版本。但 Bjarne 很快意识到——预处理的方式太慢了,太受限了。他需要一个真正的编译器。
于是 CFront 诞生了。
CFront 是一个将 C++ 翻译为 C 的编译器——注意,是”编译器”而不是”预处理器”。它的工作方式是将 C++ 代码转换为 C 代码,然后由底层的 C 编译器完成真正的编译。这个设计后来被称为”前端-后端”分离架构,对编译器设计产生了深远影响。
纪录片中展示了一个细节:CFront 的第一个版本是用 C 本身编写的。这意味着 Bjarne 需要用 C 写一个工具来编译一个”更好的 C”。这种自我引用的悖论——计算机科学家称之为”自举”(bootstrapping)——在编程语言史上一再上演,但每次都是如此震撼人心。
6. 为什么叫 C++?一个天才命名的故事
1983 年,一个叫 Rick Mascitti 的人提出了一个建议——”为什么不叫 C++?”
这个命名聪明到令人拍案叫绝。在 C 语言中,++ 是自增运算符,C++ 意味着”C 的增强版”。它既谦逊——承认 C 是其基础;又自信——暗示着超越。而且它足够短、足够酷、足够让人过目不忘。
纪录片中 Bjarne 回忆起这个命名的过程时露出了笑容。他坦言最初并不确定这个命名是否合适——”毕竟 ++ 是后缀运算符——它先使用再自增。有人说这暗示着 C++ 是在 C 之后才改进的,而不是先改进再使用。”但他最终还是接受了这个命名。事实证明,这可能是编程语言史上最成功的一次命名。
有趣的是,纪录片中还提到了一个细节:有人认为 C++ 应该叫”D”——毕竟是 C 之后的语言。但 Bjarne 否决了这个提案。”太傲慢了,”他说,”C 已经够好了,我不是来替代它的,我是来延续它的。”
7. AT&T 开始销售软件:商业与开源的第一次碰撞
C++ 诞生在贝尔实验室,而贝尔实验室属于 AT&T。
1985 年,AT&T 做了一件在当时被认为有些疯狂的事情——开始正式销售软件。C++ 的商业化就是这一举措的早期产物之一。AT&T 成立了专门的软件销售部门,将 CFront 编译器作为商业产品打包出售。
但就在这时,另一个团队试图接管 C++ 的命运。AT&T 内部有人提议:应该由他们来控制 C++ 的发展方向。这引发了 C++ 历史上第一次公司政治斗争。
纪录片在这一段揭示了一个鲜为人知的事实:Bjarne 曾一度面临失去对 C++ 控制权的危险。他花了大量时间周旋于公司的各个部门之间——不是写代码,而是写备忘录、参加会议、搞政治。他说服了高层,最终保留了他对语言设计的主导权。
如果那次斗争失败了,今天的 C++ 可能会是完全不同的样子。
8. AT&T 贝尔实验室的早期发展:代码之外的故事
“人们以为写一个编程语言就是坐在那里写代码,”纪录片中有人这样说,”但实际上,大部分时间都花在说服别人上。”
C++ 在贝尔实验室的早期发展,与其说是技术故事,不如说是生存智慧的故事。Bjarne 需要说服同事使用它,说服管理层支持它,说服用户信任它。他不只是一个程序员,还是一个传教士、一个外交家、一个布道者。
纪录片展示了那个时代的照片:贝尔实验室的走廊、会议室里的白板画满了类继承图、技术报告上密密麻麻的批注。这些画面无声地讲述着一个真理:伟大的技术从来不是在一个真空的环境中诞生的。它需要土壤、需要支持、需要人心的共鸣。
9. “一个充满 bug 的产品”:不完美的开始
1985 年 10 月,C++ Release 2.0.0 发布了。
当时一个用户说了这样一句让 Bjarne 始终铭记的话:“这是一个充满 bug 的产品——但我们仍然喜欢它。”
纪录片到这里特意放缓了节奏。镜头切换到 Bjarne 若有所思的表情。他不需要说太多——那个表情本身就是语言。他创造了一个不完美的作品,但用户看到了它的潜力,选择留下来一起打磨它。
这个故事折射出 C++ 社区最珍贵的品质:对完美的追求,和对不完美的包容。
它还告诉我们一个朴素的道理:没有一个伟大的事物是从完美开始的一步到位的。C++ 2.0 充满了 bug,但它包含的东西——多重继承、抽象类、纯虚函数——让编程界看到了一种全新的可能性。
10. C++ 扩展到 AT&T 之外:走出实验室,走向世界
1987 年,C++ 跨出了贝尔实验室的大门。
纪录片重现了那个激动人心的扩散过程:先是 AT&T 内部的其他部门,然后是其他公司——一部分通过 AT&T 的商业许可,一部分通过大学研究机构的非商业使用。
最关键的一步发生在教育领域。Bjarne 写了一本名为《The C++ Programming Language》的书——注意,不是教程,不是手册,而是一本”书”。这本书的第一版发行后,C++ 在大学里迅速流行起来。学生们发现,这本书比当时任何编程语言教材都更有一种”文学感”。Bjarne 的文笔简洁、精准、有温度——就像 C++ 本身追求的品质一样。
每一个读过这本书的人,都成了 C++ 的传播者。
11. 太多 C++ 版本:混乱的年代
成功带来了问题。
到 1990 年代初期,C++ 有了太多的版本和方言。不同编译器厂商——Borland、微软、Watcom、Zortech——各自实现了不同特性的子集。一个写好的 C++ 程序,换一个编译器就可能编译失败。
纪录片用一段巧妙的时间线动画展示了这种碎片化:屏幕上密密麻麻的版本号、特性列表、兼容性矩阵,看得人眼花缭乱。这个时期被 C++ 社区称为”野蛮生长”。
而最令人头痛的,是模板(template)的实现差异。每个编译器对模板的解析规则都不同,导致”可移植的模板代码”几乎是一个悖论。这种混乱,直接催生了下一章的故事。
12. 标准化的需要:从乱世到秩序的转折点
当碎片化达到临界点,社区发出了一致的声音:我们不能再这样下去了。
1990 年,ANSI C++ 标准委员会成立。随后 ISO/IEC JTC1/SC22/WG21 工作组成立——这个有着一长串名字的委员会,将决定 C++ 的未来走向。
纪录片讲述了标准化的启动过程:一群来自世界各地的人——有的来自公司,有的来自大学,有的是独立的狂热爱好者——聚集在一间会议室里。他们放下各自的商业利益,讨论着一个共同的问题:C++ 应该是什么样子?
这个过程中的争吵是激烈的。每个人对自己心目中的”真正 C++”都有不同的想象。但正是这些争吵,让 C++ 的标准文档越来越厚、越来越精密、越来越像一座法律文书。
纪录片在这一段中引用了一句话:“一个语言的标准,不是一份技术文档——它是一份社会契约。”
13. Alexander Stepanov 的 STL:改变一切的礼物
全片最关键的转折点来了。
1994 年,一个名叫 Alexander Stepanov 的俄罗斯裔美国计算机科学家来到了 C++ 标准委员会。他带来的,是一份后来被称为 STL(Standard Template Library) 的提案。
Stepanov 从 1970 年代就开始思考一个问题:能不能让算法和数据结构完全分离?他提出了”泛型编程”(Generic Programming)的概念——通过模板(template)实现算法在任意数据结构上的通用性。
这个想法在当时的 C++ 社区看来,简直是天方夜谭。模板本身已经很复杂了,你还想用它做更复杂的事情?
但 Stepanov 的演示震住了所有人。他展示了 sort 函数——同一个 sort,可以对 vector 排序,可以对 list 排序,可以对数组排序,甚至可以对自定义的数据结构排序——只要它满足特定的接口要求。
委员会接受了 STL。这个决定改变了 C++ 的命运。没有 STL,C++ 和 Java 的竞争中可能会输得更惨;有了 STL,C++ 有了一张王炸。
今天每一个写 std::vector、std::map、std::sort、std::find 的 C++ 程序员,都应该感谢 1994 年那个在委员会会议室里展示模板代码的俄罗斯人。
14. 第一个标准:C++98
1998 年,一个历史性的时刻到来了。
C++98——C++ 的第一个国际标准——正式发布。这个标准规范了 C++ 语言的核心特性和标准库,结束了长达十余年的碎片化时代。
但 C++98 是一把双刃剑。1200 多页的标准文档,复杂到几乎没有人能完全掌握。C++ 的门槛从”有点高”变成了”高不可攀”。
这部纪录片没有回避 C++98 的问题。它诚实地展示了人们对 C++98 的复杂情感:一方面,有了统一的标准,C++ 终于可以在多个平台上”编写一次,到处编译”(纠正了 Java 的口号);另一方面,语言的复杂性达到了一个危险的新高度。
但无论如何,C++98 的发布标志着 C++ 的成年礼。它从一个贝尔实验室的个人项目,变成了一个被国际标准化组织认证的、全球通用的正式语言。
15. 90 年代 CERN 的 C++:粒子物理学家与编程语言的浪漫邂逅
这是一个讲给极客听的爱情故事。
1990 年代,欧洲核子研究中心(CERN),一群粒子物理学家正在寻找一种能够处理海量实验数据的编程语言。他们需要性能——不是”能跑就行”的性能,而是每秒处理几十亿个粒子碰撞数据的性能。
他们选择了 C++。
纪录片展示了 CERN 实验室的惊人场景:巨大的粒子对撞机、密密麻麻的线缆、屏幕上跳动的数据流——而这一切的背后,是 C++ 代码在驱动。
CERN 的 ROOT 框架——一个大名鼎鼎的数据分析框架——就是用 C++ 编写的。ROOT 至今仍是高能物理领域最核心的工具之一。2012 年,希格斯玻色子被发现的消息震撼世界——而发现希格斯玻色子的数据分析,正是通过 C++ 和 ROOT 完成的。
粒子物理学家对 C++ 的热爱有一种独特的浪漫:在他们看来,C++ 就像粒子物理本身——复杂、精妙、有时让人抓狂,但如果搞懂了,就能揭示宇宙最深层的秘密。
16. C++ 扩展到游戏和交易领域:两个忠实阵地
两个看似毫不相关的领域——游戏开发和金融交易——成为了 C++ 最忠实的拥趸。
游戏领域:John Romero 在纪录片中告诉你为什么 C++ 是游戏引擎的首选——因为你在指挥一台机器(CPU 和 GPU)完成几乎不可能完成的任务:60 帧每秒的 3D 渲染、物理模拟、AI 运算、网络同步……所有这些需要在 16 毫秒内完成。除了 C++,没有任何其他语言能给你这种级别的控制力。
从《Doom》到《Quake》,从《虚幻竞技场》到《使命召唤》,从《原神》到《黑神话悟空》——每一款顶级游戏的血肉里,都流淌着 C++ 的血液。
金融交易领域:这里是另一个极端。Hudson River Trading 的 Eric Lubin 解释了为什么算法交易公司对 C++ 痴迷——因为毫秒级的延迟差异就是真金白银。一个交易算法如果比其他公司慢了一毫秒,就可能意味着数百万美元的损失。
C++ 是高频交易的世界里唯一的语言。因为它离硬件最近,因为它给了程序员对内存的完全控制,因为它在性能上没有任何妥协。
17. 21 世纪初的 C++ 寒冬:Java 和 C# 的夹击
2000 年代初,C++ 迎来了它诞生以来最黑暗的时期。
Java 带着”一次编写,到处运行”的口号席卷了企业级开发世界。Sun 公司的市场机器开足马力,Java 的广告铺满地铁站、杂志、电视。而 C++ 在桌面应用领域的地盘,正在被正在崛起的 Web 应用逐步蚕食。
纪录片用一组数据展示了这场寒冬的残酷:C++ 的关注度搜索指数在 2000-2005 年间下降了近一半。各大高校的编程入门课程纷纷从 C++ 转投 Java。新一代的程序员们甚至不知道 C++ 是什么——他们只知道”Java 是写企业系统的,C# 是写 Windows 应用的,Python 是写脚本的——C++?那是老一辈才用的东西。”
这是一个让所有 C++ 忠实用户心碎的时代。
18. 编程语言战争(C#):来自微软的挑战
2000 年,微软发布了 C#(读作”C Sharp”)。
它的设计者是谁?Anders Hejlsberg——就是那个创造了 Turbo Pascal 和 Delphi 的传奇人物。此前他离开了 Borland 加入微软,他在微软的第一个作品,是 J++(一个 Java 的变体),而第二个作品,就是用 C++ 的语法骨架、Java 的内存管理和现代的面向对象设计,打造出的 C#。
纪录片在处理这个章节时格外微妙——因为 Anders Hejlsberg 本人就是受访者之一。
C# 在语法层面继承了 C/C++ 的血脉——花括号、分号、强类型——这些元素让 C++ 开发者感到熟悉。但它去掉了 C++ 中最让人头疼的部分:指针、内存管理、多重继承、模板的复杂性。它引入了一个优雅的跨语言运行时——.NET Framework。
C++ 社区感受到了前所未有的威胁。这不是一个互相隔空喊话的竞争对手——这是微软,这是 Anders Hejlsberg,这是从 C++ 土壤里长出来的一棵参天大树。
在这场战争中,C++ 的反击并不是模仿 C#——而是做 C# 做不了的事。
19. 再次需要一个高效编程语言:性能至上的回归
当摩尔定律开始放缓,当云计算开始普及,当大数据开始兴起——市场发出了一致的声音:我们需要性能。
2000 年代末,人们突然发现:Java 虽然方便,但虚拟机太”重”了;C# 虽然优雅,但运行时的抽象还是有代价的。在大规模数据处理、高性能计算、游戏引擎、嵌入式系统这些场景中——除了 C++,别无选择。
纪录片的这个片段展示了一个有趣的比喻:就像时尚圈的轮回一样——宽松的编程语言流行了十年,大家又重新爱上了”贴身”的。
C++ 不是被”原谅”了才回归的——它是被”需要”了才回归的。因为有些问题,其他语言根本解决不了。
20. 现代 C++(C++11):涅槃重生
2011 年 8 月,C++11 正式发布。
这是 C++ 历史上最重大的一次版本更新。有人称之为”一次涅槃”——旧的 C++ 死去了,新的 C++ 诞生了。
C++11 带来的特性令人目不暇接:auto 类型推导、Lambda 表达式、智能指针(unique_ptr、shared_ptr)、右值引用和移动语义、并发编程支持(std::thread、std::async)、constexpr、nullptr、范围 for 循环……
Herb Sutter 在 2012 年发出了那个著名的感叹:“C++11 feels like a new language.”
这句话后来成为了 C++11 最经典的注脚。它精准地描述了每一个 C++ 开发者在接触 C++11 时的感受——所有的旧习惯都被颠覆了,但所有的旧代码都还活着。这是一种近乎魔幻的体验:你熟悉的每一个符号都在,但你用它们写出的代码,漂亮得你自己都不敢相信。
21. 标准委员会是否让 C++ 变得太复杂?:社区的自我拷问
C++11 成功了。C++14 发布了。C++17 来了。C++20 来了。C++23 在路上。
但 ——是否太复杂了?
纪录片没有回避这个问题。镜头转向了社区内部的激烈讨论:C++ 的演进速度是不是太快了?新特性是不是太多了?学习曲线是不是已经陡峭到不合理的程度了?
有声音说:C++ 正在变成一门只属于”专家”的语言。普通开发者已经被 1500 多页的标准文档、无数的特殊情况、隐晦的 UB(未定义行为)和纷繁复杂的模板魔法彻底劝退了。
也有声音回应:复杂性不是 C++ 的 bug——它是 C++ 的 feature。C++ 之所以强大,正是因为它给了你其他语言不给你的选择权。你可以选择只写简单的代码,也可以选择深入最底层做最疯狂的优化。
“C++ 不会替你决定你应该多简单或者多复杂——它把选择权交给你。”
这个自我拷问的章节,恰恰是 C++ 精神最好的体现:不回避问题,不粉饰太平,而是诚实地面对每一个尖锐的质疑。
22. C++ 无处不在:从金融到游戏到航天到量子计算
纪录片的镜头在这里骤然拉远——从微观的一行行代码,切换到宏观的一个个行业。
金融行业:全球最大的算法交易公司——HRT、Citadel Securities、Two Sigma、Jane Street——代码库的核心层,全部是 C++。每纳秒的性能差异,意味着数百万美金的利润增减。
游戏行业:Unreal Engine 5、Unity、Cocos2d-x——全球最流行的游戏引擎,无一不是 C++ 编写。
航天:NASA 的深空网络控制代码、SpaceX 的飞控系统、中国空间站的轨道计算引擎——这些容不下一个 bug 的系统中,C++ 是毋庸置疑的选择。
量子计算:IBM Qiskit 的底层、Google Cirq 的运行时——在最前沿的计算范式中,最底层的实现依然写着 C++。
人工智能:PyTorch、TensorFlow、llama.cpp——你在 Python 里调用的每一个 torch.Tensor,背后都是一段精心优化的 C++ 代码。
纪录片在这里配上了一段震撼的蒙太奇画面:交易大厅闪烁的报价屏,CPU 调试屏幕上滚动的汇编代码,等待火箭发射的人。
地球上几乎每一段重要的代码路径中,都有一段是由 C++ 编写的。
这听起来像夸张,但它是事实。
23. 未来与挑战:安全、兼容、生态——下一站
最后的技术章节将目光投向了未来。
C++ 面临的挑战是真实的。Memory Safe 语言的崛起——Rust 带着”没有不安全的内存访问”的口号高调入场,美国国家安全局(NSA)和白宫都在呼吁开发者拥抱内存安全语言。这对于以”手动内存管理”为骄傲的 C++ 来说,是一个不容回避的命题。
纪录片的受访者们对此坦诚相对。C++ 社区在做什么?C++26 标准中正在推进的 Lifetime Safety 和 borrow 检查机制——是的,C++ 正在从 Rust 那里学习一些概念。这是 C++ 四十年来一贯的姿态:看到好的想法,就把它学过来。
兼容性是一个更沉重的话题。40 年的向前兼容意味着 C++ 无法像 Python 3 那样做一个”断臂式”的清理。每一个被标准废除了的 deprecated 特性,都必须继续在编译器中存在——因为世界上可能有百万行代码还在用它们。这是 C++ 之重,也是 C++ 之爱——它从不抛弃任何人。
24. Bjarne 的影响:终章
纪录片的最后一章,名为 “Bjarne’s impact”。
没有炫目的蒙太奇,没有激荡的背景音乐。画面回到了那个最朴素的地方:贝尔实验室的灰色大楼。一个人,一台终端,一个改变世界的想法。
Bjarne Stroustrup 的贡献不在于他创造了一门多强的编程语言——而在于他创造了一个社区。四十年间,有数百人——也许上千人——参与到了这个”Bjarne’s wonderful project”中(借用 Herb Sutter 的话)。他们写编译器、写标准文档、写书、写教程、写开源库——这一切的起点,都是 1979 年那个在贝尔实验室走廊里问出”如果让 C 语言支持面向对象会怎样”的年轻人。
Bjarne 在接受采访时说过一句话,可以作为整部纪录片的注脚:
“I didn’t set out to create a great language. I set out to solve a problem. The language was just the side effect.”
(”我的初衷不是创造一门伟大的语言。我是去解决一个问题。语言只是副产物。”)
这个比代码更重要的东西——从未改变。40 年过去了,C++ 依然是那个”副产物”。但正是这种务实的、以解决问题为驱动的精神,让它成为了世界上最重要的一门编程语言。
四、关键时刻:决定C++命运的五个瞬间
4.1 命名之争:从C with Classes到C++
1983年,Rick Mascitti 提出了 “C++” 这个名字。这个命名聪明至极——++运算符在C语言中表示自增,C++ 即 “C的增强版本”。这个名字既谦逊(承认了C的基础地位),又自信(暗示了超越)。当时的Bjarne或许没想到,这个名字会伴随他一生,成为一个时代的符号。
4.2 STL的诞生:一个瑞典人的礼物
在全片中,Alexander Stepanov 带来的 STL(标准模板库)是浓墨重彩的一笔。Stepanov 早在70年代就思考通用编程的概念——让算法与数据结构分离,通过模板(template)实现真正的泛型编程。
1994年,他带着STL来到C++标准委员会。这个提案改变了C++的走向。没有STL,C++可能只是一个更好的C;有了STL,C++成为了一门真正现代的语言——vector、map、sort、find……这些今天每个C++程序员每天使用的工具,20多年前才真正被语言接纳。
4.3 C++98:第一个ISO标准
1998年,C++的第一个ISO标准发布。在此之前的混乱年代——不同编译器实现各自的特性、代码几乎不可能跨平台移植——终于画上了句号。
但标准化的代价也是沉重的:C++98 被诟病为 “太重”——1200多页的标准文档,复杂到几乎没人能完全掌握。
4.4 寒冬:Java与C#的夹击
2000年代初是C++最黑暗的年代。Java带着 “一次编写,到处运行” 的口号席卷企业级开发。微软推出了 C#,Anders Hejlsberg 设计的这门语言在语法上继承C/C++的脉络,却有着更现代的GC内存管理和更简洁的语法。
许多开发者离开了C++。C++的社区开始萎缩。甚至有声音认为——C++的时代结束了。
4.5 C++11:伟大的复兴
2011年,C++11 发布。这是C++历史上最重大的版本更新——auto、lambda、智能指针、右值引用、并发支持……一系列切中要害的特性,让C++焕发了第二春。
Herb Sutter 在2012年说了一句著名的话:”C++11 feels like a new language.”
从那时起,C++开始了一轮又一轮的迭代:C++14、C++17、C++20、C++23……每三年一个版本,稳定而持续地进化。一门40岁的语言,用3年一次的迭代节奏证明着什么叫做 “活到老,学到老”。
五、数据说话:3.5年增长90%,凭什么?
Herb Sutter 博客中引用的数据来自 SlashData(原Developer Economics)。SlashData 通过以下方式估算全球开发者人口:
- 分析 GitHub、Stack Overflow 的开发者活动
- 就业统计数据
- 自家 “Developer Nation Survey”(已进行29轮,每轮10,000+受访者)
截至 Q3 2025(Herb 发布博客时最新的可用数据),全球开发者总数约 4,840 万,而C++在 前四大编程语言(JavaScript、Python、Java、C++)中增长率第一——3.5年增长超90%。
什么在驱动C++的增长?
- AI/ML 基础设施:PyTorch、TensorFlow、llama.cpp……大量AI框架的底层都是C++。再热的Python,烫手的性能部分也是C++在扛。
- 金融科技:高频交易、量化投资——毫秒级的延迟差异就是真金白银。全球最大的算法交易公司(HRT、Citadel Securities等)都是C++的重度用户。
- 游戏与图形:Unreal Engine 5、Unity、游戏引擎的底层——C++依然是游戏开发的”御用语言”。
- 云计算与基础设施:Kubernetes 用 Go,但其下层——容器运行时、网络插件、存储驱动——大量C++实现。
- 自动驾驶与机器人:ROS 2、激光雷达驱动、实时控制——C++在嵌入式高性能场景不可替代。
- 新一代开发者:C++20/23 的现代特性大幅降低了入门门槛,让更多新开发者愿意尝试。
六、纽约首映礼:一场属于程序员的红毯
2026年5月28日,纪录片在纽约金融区举行了全球首映礼。随后举行了现场小组讨论会,由 Matt Godbolt(Compiler Explorer 创始人)主持。
小组成员包括:
- Bjarne Stroustrup — C++之父
- Gabriel Dos Reis — 微软,C++标准核心贡献者
- Nina Ranns — ISO C++委员会副主席
- Eric Lubin — HRT首席软件开发者
- Herb Sutter — 标准委员会荣誉主席
这是C++社区有史以来最豪华的阵容之一。小组讨论的录像将在 CppCon YouTube 频道 上发布——对那些没能在现场的人,这无疑是一份期待已久的精神食粮。
七、Hacker News 炸了
纪录片发布后,在 Hacker News 上迅速获得了 361分、268条评论 的高热度(链接:https://news.ycombinator.com/item?id=48408016)。
社区讨论的热点包括:
- 对C++复杂性的爱恨交织:有人感叹C++的 “必须热爱复杂性” 哲学与其他现代语言的理念格格不入
- Ken Thompson 的批评:这位Unix和Go的共同创造者曾直言不讳地批评C++。纪录片中有没有触及这段历史,引发了讨论
- Andrei Alexandrescu 的参与:令很多老C++程序员兴奋
- 游戏开发者 John Romero 的出现:让人想起C++在游戏开发中的黄金时代
- 安全性讨论:Memory Safe 语言(Rust)的崛起是否威胁C++的未来?
八、回到原点:Bjarne Stroustrup 的遗产
纪录片最后一章名为 “Bjarne’s impact”——Bjarne的影响。
Bjarne Stroustrup 在1979年走进贝尔实验室时,他面对的问题是:如何让大型软件的开发变得更高效?他选择了一条看似取巧实则艰难的路——在C语言上增加面向对象特性。这不是一门全新的语言,但正是这种务实的态度,让C++得以在C语言的庞大生态基础上,逐步建立起自己的帝国。
四十多年后的今天,当Bjarne 在直播聊天室和全世界的C++爱好者互动时,他说了什么?
Herb Sutter 在博客中轻描淡写地提了一句:
“I’m honored to have been one of hundreds of people who have played a part in advancing Bjarne’s wonderful project over the years.”
“Bjarne’s wonderful project”——一个最初只是 “带类的C” 的个人项目,最终成长为全球四大编程语言之一、用户数3.5年增长超90%的传奇。
九、纪录片的台前幕后
制作团队
纪录片由 CultRepo 制作——一个专注于开源、AI和技术背后人物故事的 YouTube 频道。他们此前还制作过其他技术类纪录片,但这次 C++ 纪录片的规模和历史意义远超以往。
赞助方
Hudson River Trading (HRT) 是纪录片的赞助方。HRT 是一家全球顶级的算法交易公司,其技术栈重度依赖 C++。HRT 的 Eric Lubin 也是纪录片受访者之一。可以说,这部纪录片既是HRT对C++社区的回馈,也是对其技术根基的一次致敬。
为什么不叫 “The Story of C++”?
| YouTube 视频的正片标题为 *“The Story of C++: The World’s Most Consequential Programming Language | The Official Story”,而 Herb Sutter 和社区则简称它为 *“C++: The Documentary”。一个正式,一个亲切——一如C++本身的双重性格:写在标准里的严谨,写代码时的自由。 |
十、尾声:一部纪录片和一个时代的缩影
当你花了70分钟看完这部纪录片,你会感受到什么?
也许是一种穿越时空的恍惚感——从1983年贝尔实验室的灰色走廊,到今天AI数据中心里奔腾的C++代码,同一门语言穿越了四个时代。一个出生在上世纪的人,现在还在前沿科技的心脏跳动。
也许是一种对”技术遗产”的敬畏——Bjarne 做出了一个决策:向前兼容。这个决策让40年前的C++代码到今天还能运行,也让C++背负了沉重的历史包袱。但这正是C++的灵魂:它从不抛弃任何人。
又或者,你只是单纯地感动——有一门语言,从你刚开始学编程时就存在,等你退休了它还在。它可能不是你最爱的语言,但你永远尊重它。
因为 C++ 是一个时代——从个人计算机到互联网、从移动互联网到AI时代——C++一直都在,而且越来越强大。
参考资料
| 资料 | 链接 |
|---|---|
| 🎥 YouTube正片 | https://www.youtube.com/watch?v=lI7tMxzSJ7w |
| 🎥 YouTube预告片 | https://www.youtube.com/watch?v=NXwTRzywDSk |
| 📝 Herb Sutter 博文 | https://herbsutter.com/2026/06/04/c-the-documentary-released-today/ |
| 📰 isocpp.org 公告(正片) | https://isocpp.org//blog/2026/06/cpp-the-documentary |
| 📰 isocpp.org 公告(预告片) | https://isocpp.org//blog/2026/05/cpp-the-documentary-trailer |
| 💬 Hacker News 讨论 | https://news.ycombinator.com/item?id=48408016 |
| 📊 90% 增长数据来源(SlashData) | https://www.slashdata.co/research/developer-population |
| 🏢 HRT 赞助页 | https://hudsonrivertrading.com/cppdoc |
| 📺 CppCon YouTube 频道 | https://www.youtube.com/@CppCon |
📅 2026年6月5日:纪录片小组讨论录像(纽约首映礼现场)尚未在CppCon频道发布,关注后续更新。
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/dev/c++/cpp-the-documentary-40-years.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)