当代码成为时代注脚,谁在书写程序员的历史?
Robert C. Martin(Bob大叔)的《我们程序员:从代码诞生到AI兴起》,是一部打破技术史书写范式的里程碑之作。它既非冰冷的年表堆砌,亦非天才的孤光独照——而是将程序员群体置于技术演进的核心,用半个世纪的亲历者视角,完成一场从“英雄崇拜”到“凡人史诗” 的叙事革命。
你和我,我们程序员掌控世界:跨越半个世纪的编码文明史
在本书中,软件行业传奇人物罗伯特·C.马丁(人称Uncle Bob,鲍勃大叔)携我们步入计算机编程的天地,将我们的目光聚焦在凭借聪明才智与顽强意志改变世界的人物的生命轨迹。从查尔斯·巴贝奇(CharlesBabbage)、阿达·洛芙莱斯(Ada Lovelace),到艾伦·图灵(Alan Turing)、格蕾丝·霍珀(Grace Hopper)与丹尼斯·里奇(Dennis Ritchie),探寻这些为现代计算技术奠定基础的开创性先驱者们的人生故事,描述他们披荆斩棘的求索历程。
这部具有回忆录特质的科技史著作宛如一幅波澜壮阔的历史长卷,蕴含着深邃的技术洞见,深入剖析了在比特和字节层面缔造计算技术的编程突破。本书穿越时空,将技术奇迹与背后的鲜活人物事迹相结合,让读者一窥那些推动技术巨轮滚滚向前的先驱者所经历的奋斗历程。他们的故事并非只有鲜花和掌声,还有至暗时刻的挣扎——资金枯竭、上司的否定、重大失败和患上致命疾病,也曾无情地折磨他们。他们的经历与计算技术本身的演进轨迹交融成画,编程领域也从最初的草创时期发展到如今云计算和AlI兴盛的时代。书中不仅勾勒出计算领域的进化脉络,还探讨了Al技术如何改变编程的未来走向,以及由此衍生出的伦理挑战。
核心议题
了解编程的起源,及其如何塑造了当今的技术格局。
编程先驱者的人文侧写——是什么驱动他们不断前行,他们又跨越了哪些障碍。从汇编语言萌芽到面向对象语言崛起的关键技术突破。
第二次世界大战对推动计算机科学发展的历史性作用。关于Al伦理及编程未来的深刻洞见与前瞻性预测。
第Ⅰ部分 开端
第1章 我们是谁? 3
Ⅱ部分 技术巨擘
第2章 巴贝奇:第一位计算机工程师 11
2.1 生平 11
2.2 数学用表 12
2.2.1 制表之道 12
2.2.2 有限差分法 14
2.3 巴贝奇的远见 17
2.4 差分机 18
2.5 机械的符号系统 19
2.6 派对魔术 20
2.7 差分机的终结 20
2.8 分析机 22
2.9 阿达:洛芙莱斯伯爵夫人 23
2.10 第一位程序员? 26
2.11 未竟之宏愿 27
2.12 结论 29
参考文献 29
第3章 希尔伯特、图灵与冯 · 诺伊曼: 第一代计算机架构师 31
3.1 大卫·希尔伯特 31
3.1.1 哥德尔 33
3.1.2 反犹主义风暴 35
3.2 约翰·冯·诺伊曼 36
3.3 艾伦·图灵 38
3.4 图灵-冯·诺伊曼架构 40
3.4.1 图灵的机器 40
3.4.2 冯·诺伊曼的历程 44
参考文献 49
第4章 格蕾丝 · 霍珀:第一位软件工程师 51
4.1 军旅生涯:1944年夏天 52
4.2 规范:1944—1945年 55
4.3 子程序:1944—1946年 58
4.4 研讨会:1947年 59
4.5 UNIVAC:1949—1951年 60
4.6 排序与编译器的起源 64
4.7 酗酒:大约1949年 64
4.8 编译器:1951—1952年 65
4.9 A类编译器 66
4.10 编程语言:1953—1956年 68
4.11 COBOL:1955—1960年 69
4.12 我对COBOL的吐槽 72
4.13 无可争议的成功 72
参考文献 73
第5章 约翰 · 巴克斯:第一种高级语言 75
5.1 生平 75
5.2 令人着迷的彩色灯光 76
5.3 快速编码与701计算机 78
5.4 对速度的需求 80
5.4.1 分工 84
5.4.2 我对FORTRAN的吐槽 85
5.5 算法语言(Algol)及其他 85
参考文献 87
第6章 艾兹格 · 迪杰斯特拉:第一位计算机科学家 89
6.1 生平 89
6.2 ARRA计算机:1952—1955年 91
6.3 ARMAC计算机:1955—1958年 94
6.4 ALGOL语言与X1计算机:1958—1962年 95
6.5 阴霾如墨渐漫:1962年 98
6.6 计算机科学的崛起:1963—1967年 99
6.6.1 科学性 100
6.6.2 信号量 100
6.6.3 结构化编程 101
6.6.4 数学证明的迷思 101
6.7 数学:1968年 102
6.8 结构化编程:1968年 104
参考文献 107
第7章 尼加德与达尔:第一种面向对象编程语言 109
7.1 克里斯滕·尼加德 109
7.2 奥莱-约翰·达尔 110
7.3 Simula语言与面向对象编程 111
参考文献 119
第8章 约翰 · 凯梅尼:第一种“大众化”编程语言——BASIC 121
8.1 约翰·凯梅尼的生平 121
8.2 托马斯·库尔茨的生平 123
8.3 革命性的想法 123
8.4 看似不可能的任务 124
8.5 BASIC语言 125
8.6 分时系统 126
8.7 操作计算机的青少年 127
8.8 转型 127
8.9 盲目先知 128
8.9.1 共生关系? 128
8.9.2 预言 129
8.10 雾里看花 132
参考文献 132
第9章 朱迪思 · 艾伦 133
9.1 ECP-18计算机 133
9.2 朱迪思的经历 134
9.3 辉煌的职业生涯 137
参考文献 138
第10章 汤普森、里奇与克尼汉 139
10.1 肯·汤普森 139
10.2 丹尼斯·里奇 141
10.3 布莱恩·克尼汉 144
10.3.1 Multics系统 145
10.3.2 PDP-7与《太空旅行》游戏 147
10.4 UNIX操作系统 149
10.5 PDP-11计算机 151
10.6 C语言 153
10.7 克尼汉和里奇 155
10.7.1 说服与合作 157
10.7.2 软件工具 157
参考文献 158
第Ⅲ部分 技术拐点
第11章 20世纪60年代 163
11.1 ECP-18 166
11.2 父亲的支持和鼓励 168
第12章 20世纪70年代 169
12.1 1969年 169
12.2 1970年 172
12.3 1973年 174
12.4 1974年 176
12.5 1976年 179
12.6 1978年 182
12.7 1979年 183
参考文献 184
第13章 20世纪80年代 185
13.1 1980年 185
13.1.1 系统管理员 186
13.1.2 pCCU 187
13.2 1981年 188
13.2.1 DLU/DRU 188
13.2.2 苹果Ⅱ 189
13.2.3 新产品 190
13.3 1982年 190
13.4 1983年 192
13.4.1 麦金塔内部剖析 192
13.4.2 电子公告板系统(BBS) 193
13.4.3 泰瑞达公司的C语言 193
13.5 1984—1986年:语音响应系统(VRS) 193
13.6 1986年 194
13.6.1 技工派遣系统(CDS) 195
13.6.2 字段标记数据(FLD) 195
13.6.3 有限状态机 196
13.6.4 面向对象编程(OOP) 196
13.7 1987—1988年:英国 197
参考文献 198
第14章 20世纪90年代 199
14.1 1989—1992年:克利尔通信公司 199
14.1.1 Usenet 200
14.1.2 Uncle Bob 200
14.2 1992年:C++ Report 201
14.3 1993年:Rational公司 201
14.4 1994年:教育考试服务中心(ETS) 203
14.4.1 C++ Report专栏 204
14.4.2 模式 204
14.5 1995—1996年:第一本书、会议、课程及OM公司 205
14.6 1997—1999年:C++ Report、统一建模语言(UML)和互联网泡沫 206
14.7 1999—2000年:极限编程 207
参考文献 209
第15章 千禧年 211
15.1 2000年:极限编程(XP)领导力 211
15.2 2001年:敏捷开发的兴起和互联网泡沫的破裂 212
15.3 2002—2008年:在困境中彷徨 213
15.4 2009年:《计算机程序的构造和解释》与色度键 214
15.4.1 视频 215
15.4.2 cleancoders.com 215
15.5 2010—2023年:视频、技艺与专业精神 216
15.5.1 敏捷开发偏离正轨 216
15.5.2 更多书籍 217
15.5.3 疫情期间 217
15.6 2023年:发展停滞期 217
参考文献 218
第IV部分 未来
第16章 编程语言 223
16.1 数据类型 224
16.2 Lisp 225
第17章 人工智能 227
17.1 人类大脑 227
17.2 神经网络 229
17.3 构建神经网络并非编程 230
17.4 大语言模型 230
17.5 大型X模型的影响 235
第18章 硬件 237
18.1 摩尔定律 238
18.1.1 多核 238
18.1.2 云计算 238
18.1.3 平台期 238
18.2 量子计算机 239
第19章 万维网 241
第20章 未来的编程 245
20.1 航空类比 245
20.2 设计原则 246
20.3 方法 246
20.4 规范 246
20.5 职业道德 247
参考文献 247
后记 249
术语表 257
其他重要人物名录 273
“我像Uncle Bob一样,职业生涯的大部分时间都在从事咨询、教学和参加计算机会议中度过。重要的是,本书中提及的许多人物我都遇到过,也曾和他们共进晚餐。所以这本书写的其实就是我职业生涯中的那些朋友,我可以告诉你,这些都是真实的故事。事实上,本书的文字表达非常精妙,研究得也很深入。”
——摘自Tom Gilb为本书撰写的“后记”
“纵观各类相关书籍,除本书之外,我难以想象还有哪本书能如此全面、清晰地讲述计算机编程的早期发展历史。”
——Mark Seeman
“这是一部引人入胜的计算机与编程历史书。精彩呈现众多伟大人物的生活片段,也生动描绘了Uncle Bob作为程序员的职业生涯历程。”
——Jon Kern,《敏捷宣言》的合著者
“在本书中, Bob成功地将多位程序大师的工作经历编织成一个个引人入胜的故事,为我们提供了丰富的历史背景、人性化的事迹以及行业开创者们令人耳目一新的灵感之光,披露了诸多细节。身为这段波澜壮阔的历史的亲历者,Bob巧妙地将自己新颖的观察和见解融入其中。这一次,我们不仅完整欣赏Bob的故事,还了解了他对未来的思考。这是一本饶有趣味的书,读来如春风拂面,轻松惬意。”
——Jeff Langr