C++ 四十年传奇:从贝尔实验室的「带类的C」到全球增长最快的编程语言

2026/06/06 dev c++ 15376 字 · 约 44 分钟 阅读
2026年6月4日,纪录片《C++: The Documentary》正式在YouTube首播。70分钟讲述C++从1983年贝尔实验室到现代C++的传奇历程,14位传奇人物亲述,过去3.5年用户增长超90%。

一、一部属于程序员的史诗

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 StroustrupC++设计者与原始实现者主角。从零创造了这门语言
Alexander StepanovSTL设计者标准模板库之父,改变了C++的编程范式
Anders HejlsbergC#、TypeScript、Turbo Pascal创造者C++最具威胁的”对手”
Andrei AlexandrescuNvidia首席研究科学家《C++现代设计》作者,模板元编程先驱
Andrew Koenig贝尔实验室、C++标准委员会创始成员C++最早的传播者之一
Barbara Moo贝尔实验室C++开发团队经理早期C++团队的幕后推手
Brian Kernighan贝尔实验室《C程序设计语言》合著者,Unix先驱
Chris LattnerLLVM、Clang、Swift创造者(现Mojo)现代C++编译器生态的奠基人之一
Danilo PiparoCERN粒子物理学家ROOT框架负责人,C++在科学计算领域的代表
Eric LubinHRT首席软件开发者算法交易领域的C++实践者
Gabriel Dos Reis微软软件工程师C++标准核心贡献者
Herb SutterCitadel Securities技术院士C++标准委员会荣誉主席,现代C++的推动者
John Romeroid Software联合创始人《Doom》《Quake》的创造者,C++游戏开发的早期实践者
Nina RannsISO 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:50AT&T贝尔实验室的发明C++的诞生地——贝尔实验室的传奇氛围
07:30C with Classes最初的形态:在C语言上加类,初衷是解决大规模软件开发
09:37C with Classes的早期采用最早的勇敢尝试者
10:53从C with Classes到C++(及CFront)第一个编译器CFront的故事
12:32为什么叫C++?命名轶事——C++的++运算符寓意
13:24AT&T开始销售软件 / 另一个团队试图接管C++公司政治与开源精神的早期冲突
16:08AT&T贝尔实验室的早期发展技术之外的生存智慧
19:10“一个充满bug的产品” / Release 2.0.0真实的创业故事——不完美的开始
21:55C++扩展到AT&T之外走出实验室,走向世界
24:50太多C++版本版本碎片化的混乱年代
26:03标准化的需要从乱世到秩序的转折点
29:38Alexander Stepanov的STL全片最关键的转折点——STL的到来改变了一切
37:19第一个标准:C++98十年磨一剑,第一个ISO标准诞生
39:2190年代CERN的C++粒子物理学家与C++的浪漫邂逅
40:34C++扩展到游戏和交易领域两个C++最忠实阵地
43:0021世纪初的C++寒冬Java和C#崛起,C++陷入低谷
45:34编程语言战争(C#)微软的挑战,C++的危机与反击
49:25再次需要一个高效编程语言性能至上的回归
52:29现代C++(C++11)涅槃重生,C++的新纪元
56:29标准委员会是否让C++变得太复杂?社区内部的自我拷问
1:00:45C++无处不在从金融到游戏到航天到量子计算
01:05:00未来与挑战安全、兼容、生态——下一站
01:08:31Bjarne的影响终章——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::vectorstd::mapstd::sortstd::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_ptrshared_ptr)、右值引用和移动语义、并发编程支持(std::threadstd::async)、constexprnullptr、范围 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++成为了一门真正现代的语言——vectormapsortfind……这些今天每个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++历史上最重大的版本更新——autolambda、智能指针、右值引用、并发支持……一系列切中要害的特性,让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++的增长?

  1. AI/ML 基础设施:PyTorch、TensorFlow、llama.cpp……大量AI框架的底层都是C++。再热的Python,烫手的性能部分也是C++在扛。
  2. 金融科技:高频交易、量化投资——毫秒级的延迟差异就是真金白银。全球最大的算法交易公司(HRT、Citadel Securities等)都是C++的重度用户。
  3. 游戏与图形:Unreal Engine 5、Unity、游戏引擎的底层——C++依然是游戏开发的”御用语言”。
  4. 云计算与基础设施:Kubernetes 用 Go,但其下层——容器运行时、网络插件、存储驱动——大量C++实现。
  5. 自动驾驶与机器人:ROS 2、激光雷达驱动、实时控制——C++在嵌入式高性能场景不可替代。
  6. 新一代开发者: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 LanguageThe 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频道发布,关注后续更新。

文档信息

加载评论…