我們程序員 : 從代碼誕生到AI興起 We, Programmers: A Chronicle of Coders from ADA to AI

茹炳晟, 柳飛

相關主題

商品描述

你和我,我們程序員掌控世界:跨越半個世紀的編碼文明史

在本書中,軟件行業傳奇人物羅伯特·C.馬丁(人稱Uncle Bob,鮑勃大叔)攜我們步入計算機編程的天地,將我們的目光聚焦在憑借聰明才智與頑強意誌改變世界的人物的生命軌跡。從查爾斯·巴貝奇(CharlesBabbage)、阿達·洛芙萊斯(Ada Lovelace),到艾倫·圖靈(Alan Turing)、格蕾絲·霍珀(Grace Hopper)與丹尼斯·裏奇(Dennis Ritchie),探尋這些為現代計算技術奠定基礎的開創性先驅者們的人生故事,描述他們披荊斬棘的求索歷程。

這部具有回憶錄特質的科技史著作宛如一幅波瀾壯闊的歷史長卷,蘊含著深邃的技術洞見,深入剖析了在比特和字節層面締造計算技術的編程突破。本書穿越時空,將技術奇跡與背後的鮮活人物事跡相結合,讓讀者一窺那些推動技術巨輪滾滾向前的先驅者所經歷的奮鬥歷程。他們的故事並非只有鮮花和掌聲,還有至暗時刻的掙紮——資金枯竭、上司的否定、重大失敗和患上致命疾病,也曾無情地折磨他們。他們的經歷與計算技術本身的演進軌跡交融成畫,編程領域也從最初的草創時期發展到如今雲計算和AlI興盛的時代。書中不僅勾勒出計算領域的進化脈絡,還探討了Al技術如何改變編程的未來走向,以及由此衍生出的倫理挑戰。

核心議題

了解編程的起源,及其如何塑造了當今的技術格局。

編程先驅者的人文側寫——是什麼驅動他們不斷前行,他們又跨越了哪些障礙。從匯編語言萌芽到面向對象語言崛起的關鍵技術突破。

第二次世界大戰對推動計算機科學發展的歷史性作用。關於Al倫理及編程未來的深刻洞見與前瞻性預測。

作者簡介

羅伯特·C.馬丁(Uncle Bob)自1970年起投身編程與軟件開發領域,擔任程序員和軟件開發專家。馬丁是Uncle Bob咨詢公司的創始人,並與他的兒子米卡·馬丁(Micah Martin)共同創立了Clean Coders公司。馬丁在各類行業期刊上發表了數十篇文章,是國際會議和行業展覽上的常駐演講嘉賓。他著有多部書籍,包括《敏捷軟件開發:原則、模式和實踐》《UML: Java程序員指南》《代碼整潔之道》《程序員的職業素養》《整潔架構之道》《敏捷整潔之道》《匠藝整潔之道》及《函數式設計:原則、模式與實踐》。馬丁曾擔任C++Report雜誌主編三年,並擔任敏捷聯盟的首任主席,其思想持續塑造全球軟件開發的實踐模式與發展路徑。

目錄大綱

第Ⅰ部分 開端

第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