发表于2024-11-24
本书深受普利策获奖作品的启发,是一部难得的跨界佳作,娓娓道来的写实风格,可以帮助我们每一个人纵览计算机与软件发展史,横向整合关联行业全景,洞察蕴藏于其中的价值与商机。
本书引人入胜,读起来让人难以释卷,是一本见微知著,令人醍醐灌顶的通史,适合软件工程、信息技术、计算机、大数据等专业人员阅读和参考,是一本可以帮助他们实现科技创新与创业的重要指南。
在软件主宰世界的当下,软件行业发展迅猛,成为让人关注的领域。从史前的计算需求,从1930年到2019年,作者从大历史观的角度追古鉴今,从大趋势,典型企业,赢家和输家,新技术,生产力/质量问题,方法,工具,语言,风险等角度,勾勒出波澜壮阔的软件工程发展史,检视软件工程发展史上的重要发明,把脉软件行业并指出企业、职业兴衰的底层原因,同时还对一些优秀的软件企业商业模式有所涉猎。
本书引人入胜,读起来让人娓娓难以释卷,是一本见微知著、令人醍醐灌顶的通史,非常适合软件工程和信息技术相关专业的学生、从业人员与有志于科技创新创业的人阅读和参考。
卡珀斯·琼斯(Capers Jones),2014年国际软件测试卓越奖(ISTQB)得主,著名软件工程方法论专家,软件经济数据与度量专家,软件工程发展史的参与者与见证人,Namcook Analytics联合创始人、副总裁兼首席技术官,软件生产力研究中心(SPR)总裁兼主席,ITT公司个软件度量项目负责人,IBM加州总部管理人员和软件研究人员,设计过7个专利性软件估算工具和4个商业软件估算工具,出版过15本软件工程和软件管理著作,比如《软件质量经济学》。
李建昊,光环国际副总裁,咨询合伙人,企业转型顾问,SAFe(规模化敏捷)中国社群创始人。曾担任雅各布森国际咨询公司和ThoughtWorks公司中国区首席咨询顾问,参与SEMAT(软件工程方法和理论)中国分会以及OMG国际标准Essence相关论文的中文翻译等工作。目前专注于企业转型、产品创新和人员能力培养,在电信、传统IT、金融保险银行等领域从事敏捷培训、咨询和教练工作。
傅庆冬,PMP,PMI-ACP,SPC4,CSM,资深敏捷教练,企业级敏捷转型专家。他专注于敏捷培训、实施及企业级转型工作已经超过8年。在帮助大型IT系统开发和管理、企业战略转型和流程变革、IT部门绩效管理等领域拥有丰富的经验。他指导团队和组织理解敏捷思想,帮助他们快速持续改进工作流程与工作效率。他具有15年以上专业软件工程经验,包括极限编程、测试驱动开发(TDD)、以及大型软件系统的持续集成与持续交付等。他也为需要提高工程技术能力的企业进行工程实践培训及辅导。
戴波,北京石油化工学院信息工程学院院长,教授,硕士生导师,主要研究领域为安全生产信息技术及大数据分析、现代检测技术、长输管道检测等。
“卡珀斯? 琼斯开创性地以通史的方式写成一部贯穿史前到2019年的计算简史,真实地诠释和还原了数据时代的前世今生以及近在眼前的未来。软件工程、信息科学、计算机、大数据等专业的学生和从业人员,一定不要错过卡珀斯博士的《软件工程通史1930—2019》。”
——托尼?萨尔瓦奇奥(Tony Salvaggio), Computer Aid公司CEO兼总裁
目 录
第1章 序曲:从古到今话计算 1
人类对计算的需要 2
对数字序列的早期认识 4
那些为数学发展提供原动力的发明 8
数学和计算 10
件相关的关键发明 22
软件对人类和社会的影响 25
小结 37
第2章 1930—1939:数字计算的基础 39
现代计算的先驱 39
小型数学应用程序 43
小结 45
第3章 1940—1949:二战及战后计算机的使用 47
全球冲突与计算机的使用 47
战争期间的技术创新 49
战后的计算机 73
这十年的贡献 78
1945年的软件开发 81
小结 82
第4章 1950—1959:数字计算机和软件开始崛起 83
20世纪50年代的军用与国防计算机 83
20世纪50年代的创新者 87
20世纪50年代的编程语言 90
第一台商用计算机 91
20世纪50年代的软件应用 96
1955年的功能点 97
小结 98
第5章 1960—1969:商用计算机和商用软件的兴起 99
劳动力演进 100
早期的专业外包 102
20世纪60年代的计算机程序员 103
IBM系统/360 111
图灵奖 113
信用卡的发明 117
自动化和新的职业 118
DEC的PDP-1小型机 119
20世纪60年代的编程语言 120
20世纪60年代的计算机业务 123
诉讼永久改变了计算机世界 126
太空里的计算机和软件 127
20世纪60年代的计算机和软件的增长 129
1965年逆向的功能点 131
小结 132
第6章 1970—1979:计算机和软件开始创造财富 133
软件在70年代的发展 133
20世纪70年代期间成立的大公司 137
20世纪70年代成立的计算机公司和软件公司 139
20世纪70年代新创公司的影响力 155
应用软件发展曲折 156
大量零散的软件细分类别 157
改变计算机历史的法律诉讼 168
推动软件行业迅速发展的辅助性发明 169
1975年的功能点 173
小结 174
第7章 1980—1989:PC和个人软件崛起 175
计算的变化加速 176
20世纪80年代成立的公司 178
20世纪80年代软件应用的发展 217
大约1985年1000个功能点的结果 217
小结 218
第8章 1990—1999:万维网的发展和网络公司的兴起 221
万维网的出现 222
20世纪90年代的其他发明 224
20世纪90年代成立的公司 226
大规模更新和遗留软件老化 254
国际日期格式不兼容 256
外包业务迅速扩张 260
20世纪90年代期间软件应用的发展 260
1995年1000个功能点的结果 261
小结 262
第9章 2000—2009:社交网络和经济危机的出现 265
互联网泡沫 266
大衰退 268
21世纪00年代的创新 272
21世纪00年代建立的公司 275
2000—2010年软件的增长 303
大约2005年1000个功能点的结果 304
小结 305
第10章 2010—2019:云、众、博客、大数据和预测分析 307
预测未来 308
软件工程的专业地位 309
21世纪10年代可能的软件工程改进 313
21世纪10年代早期成立的公司 315
预测2013年到2019年的新公司和新产品 332
2010年到2019年的软件预期增长 348
大约2015年1000个功能点的结果 348
小结 349
第11章 现代软件的问题 351
对影响比较大的软件故障进行分析 351
小结 370
第12章 网络犯罪和网络战简史 373
一种新的犯罪形式 374
网络攻击的种类 385
受攻击的可能性 416
加强对网络攻击的防御 418
提高我们对网络攻击的免疫力 420
美国,网络攻击的频率和成本日益增加 429
小结 430
参考文献与网络及其他资源 431
第1章
序曲:从古到今话计算
我们人类对计算的需要,可能起源于逐渐开始积累物质财产这个大的背景。这样的需要很快演变成为我们需要记录家庭或部落所拥有的财产,比如多少头牛和羊,等等。一旦可以做简单的加减法,与之相关的“记录信息的需要”也随之而来,有了记录,信息保存的时间可以更长,而且还可以分享给其他的人。早期用来记录信息的载体是鹅卵石或实物,但发展到后来,人们发现可以用符号来代替。
人类不断进化并开始以部落的方式定居之后,产生了其他的需要,比如需要测量砖瓦的尺寸和标定地界。一旦有空闲时间,我们人类又在好奇心的驱使下想要计算时空的距离和恒星的位置。
很快,与计算有关的活儿被视为是一种繁重而乏味的体力活儿。于是,很快出现了可以帮助提高计算速度的机械装置。算盘是第一个具有开创性的计算器。
最后,不同的决策支持工具先后问世。对快速计算、永久性数据存储和复杂决策的需要是最终启发我们人类设计和开发计算机及相关软件的关键因素。
人类对计算的需要
这样一本讲软件工程和计算机发展史的书,不应该开门见山就直接从某个具体的时间(比如1930年)开始。没错,数字计算机和软件设计的确是1930年到1939年之间才首次明确提出来的,但它们的出现实际上离不开历史上几千年以来的许多发明。
古往今来,人类对计算有不同形式和类型的需要。当然,更需要以固定格式来保存计算结果。
还有一种不太容易明确的需要是对不同的选项进行逻辑分析。一个典型的例子是产品的市场化是走平稳的长线还是走快而陡峭的短线。再比如,某块特定的土地最适合种植哪一种农作物?
更重要的决策还有某个部落是否应该对另一个部落发动战争。在今天,有些决策关系到健康,甚至生死攸关,比如,对付抗药性肺结核这一类大病,究竟用什么疗法才最有效?
再有就是影响到经济发展的决策。一个典型的例子是共和党与民主党。哪些选择对美国经济最有利,双方的观点截然不同。
要在不同的对立选项之间做出选择,虽然不可能双方都对,但双方显然都有可能选错。(也可能有其他更好的选择或压根儿就没有什么更好的选择)通过对民主党与共和党的辩论进行分析,我们发现双方貌似都是错的,而且,无论采取哪个党派的执政路线,最后都可能不利于美国经济健康发展。
在计算机或软件设计专业人员看来,建一个强大的数学模型来比较提高税收(民主党目标)、减少开支(共和党目标)或兼顾两者所造成的经济影响,应该不是特别困难吧。
然而,民主党与共和党都没有用真实的财政模型来展开理性的辩论,而是停留在巧言辞令的层面,没有任何实质性的信息或论据来支撑自己的论断。共和党与民主党的演讲简直让人大跌眼镜,双方都在极其能事指责对方,但都拿不出什么确凿可信的数据。
这类问题在美国很多州和市也发生过。比如,2012年美国大选前,罗德岛州议会通过一项不明智的决议,每个投票站的选民人数提高一倍,目的是使投票站的数量减半。
这个愚蠢的决定造成一个不可避免的后果,选民必须排成长队,足足等上四个小时才能投票,有些投票站甚至还得开放到深夜。
这个问题并不是特别复杂。每个投票站每小时的人流量在很多年前就是知道的。但罗德岛州议会疏忽了对投票站减半后之于选民等待时间的影响进行充分而必要的计算。
结果,2012年大选中,罗德岛州很多选民等不起四个小时,有的甚至没有投票就直接走人。他们的选举权被这个“脑残”议会所通过的愚蠢决议给剥夺了。议会的这项决议太差劲儿了,在没有对投票站减半对投票时间的影响进行建模之前,绝对不应该予以通过。
今天,政府出台的法律是否明智,颁布的法规有没有经过大脑,其决策影响评估都可以用计算机和软件轻松算出来,甚至还能够从根源上消除可能出台类似愚蠢决议的任何想法。
事实上,古往今来,人类一直都在运用数学知识做出逻辑选择,记录数据和信息,在这样的大背景下演绎出软件和计算机的发展历程。下面几个问题与软件和计算机的发展史紧密相关:
* 我们用的是什么类型的计算?
* 我们需要保存什么类型的信息或数据?
* 对于需要长期保留的信息,哪些存储方法最合适?
* 面对复杂的选项或决策,哪些分析方法对我们有帮助?
* 在进行数据与知识的交流时,有哪些最佳方法?
穿越古今,从大历史观的角度来考虑这五个问题,纵览计算机和软件逐步用于解决这些问题的过程,是非常有意思的。
对数字序列的早期认识
说起来,我们人类可能是先学会说话,后来才慢慢开始学会数数的,至少可以数手指头,从1数到10。早在3.5万年以前,尼安徳特人①和克罗马农人②可能就会数数,有考古发现为证:捷克斯洛伐克距今3.3万年的狼骨和非洲距今3.5万年的狒狒骨,上面都有并排的划痕。
这些划痕记录的是过去了多少天,还是多少件物品,或只是单纯记录过去了多少时间,我们对此不得而知。狼骨最有意思,因为上面的55个划痕被分成5组,很有可能是用来记录物品或时间的。
考古还发现,距今5万年的乳齿象象牙上有16个孔,这些孔的用途也是个未解之谜。尼安德特人和克罗马农人在公元前4.3万年~公元前3万年之间融合,所以这些饰品可能来自其中任何一方,也可能来自同时代但现在已经灭绝的其他部落。
有趣的是,虽然现代人额前叶更宽、更高,但尼安德特人和克罗马农人的头颅和脑容量都略大于现代人。虽然脑容量与智力水平并不直接相关,但确实可以表明很早以前就存在某种形式的抽象和推理。岩洞壁画的历史可以追溯到4万年以前,这说明人类在当时至少已具备某种形式的抽象能力。
除了计算物品和财产,对时间流逝保留类似的跟踪记录也十分重要。对于年,人类有主观的了解可能是距今1万年前的事。随着1万年前农业时代的到来,了解特定农作物的种植时间和收割时间对粮食生产有很大的帮助。
目前已知的第一批人类定居点是公元前7000年土耳其的加泰土丘。这个泥砖构造的小镇大概有几百个居民。考古人员在此发现了农业时代的小麦、大麦和豌豆。肉类食品来自牛和其他野生动物。
箭头、锤头、陶器、铜和铅等考古发现表明这里发生过某些形式的交易。如果没有物品记录方法,交易是很难实现的。此外还有许多壁画,或许可以说明人们对艺术有兴趣。
早期人类对数学的认知可能来源于几个关键问题。
* 史前的数字和数学知识
通过计算物品来记录主权(所有权)
理解加法和减法两种基本运算
测量角度,比如东向或西向,以免迷路
计算时节,用来辅助农业生产
计算日常时间,用来协调集体活动
* 早期文明后出现的数学和数学知识
为建筑用途而计算实际的长宽高
为交换物品而计算重量和体积
计算长途距离,比如两个城市之间
计算山体的高度以及太阳高出地平线的位置
理解乘除法数学运算
* 牧师或巫师传授的数字或数学知识
计算天文时间,比如日食,比如恒星的运行位置
测量运动物体的速度
测量曲线、圆和不规则的多边形
测量加速度等变化率
测量音速和光速等不可见的物理现象
* 数学家提出并发展起来的数字和数学知识
对博弈和赌博中的概率进行分析
理解抽象概念,比如0和负数
理解复利等复杂问题
理解非常复杂的问题,比如无限性和不确定性
理解抽象概念,比如无理数及量子的不确定性原理
经过仔细观察,借助于石头或划痕以及用来测量长度的木棒,史前的数字和数学知识很容易理解和掌握。加减法的演示也很容易,从一堆石头中简单增减石头即可。
早期文明中,为了了解数字和数学知识,需要物理设备与抽象推理相结合。显然,有些刻度尺用来称重,有些角度计算器用来测量山体高度。有些记录方法用来跟踪系列事件,例如长时间观测和记录恒星在空中的位移。
来自祭司或巫师的数字和数学知识,结合了抽象推理、精准计时、精准实测,让人清楚认识到数学所代表的东西是看不见、摸不到或不能直接测量的。这就要求有人花时间做智力研究,不再像以前那样继续从事农耕或狩猎。
数学家提出并发展起来的数字和数学知识,可能是促成计算设备以及计算机和软件最终问世的主要原因。要求对以前的事物有系统化的认知,同时还要结合精准的测量以及对数学推导有强烈的求知欲。这些知识可能起源于数学素养良好并可以在新的方向以创造性思维扩展早期数学概念的人。
考古发现,古城摩亨朱-达罗③曾经有过复杂的数学运用。事实上,天平秤和称重计就是在这里发现的。
古城摩亨朱-达罗在巅峰时期可能有3.5万居民。它的街道布局为紧凑的网格状,砖和建筑物都有标准的尺寸,显示出重复使用的迹象。显然,这些都是需要精确测量的。
摩亨朱-达罗和印度北部城市哈拉帕在建筑风格上很相似,表明古印度曾经有过中央机关。两个古城都发现过一大批描有动物图像和符号的石版,只不过其含义目前还无法破译。有些石版的封泥时期甚至可以追溯到公元前3300年。
其他古代文明也发展了计数、算术以及长度、重量和尺度单位。埃及和巴比伦在公元前2000年就有算术。
随着城市成为定居点并逐渐扩大,人们的闲暇时间也增多,出现了非体力劳动和狩猎的职业。这些职业不依赖于体力,毫无疑问,牧师和巫师就属于这一类。他们的时间从生存和觅食中脱离出来之后,开始进一步理解以更多形式出现的数学知识。
长期跟踪恒星的运行轨迹,测量更远的距离,如不同村庄的产权边界和距离,测量船只的航行轨迹和位移,这些都需要更复杂的数学计算,需要精确测量角度和时间段的变化。造船业的到来,还需要更高深的数学知识,因为船体必须要能弯曲,单是直线测量还不够。
在河里或海边荡舟或划船,不需要太多或根本不需要用到任何数学知识。但是,一旦驶入大海开始远航,就必须认识星座,以免迷失方向。
由于大陆漂移的原因,澳大利亚远离其他所有大陆,没有陆桥在任何位置与它连接。然而,大约距今4万年前,就有人类在此定居,显然是通过长途远洋航行过去的。波利尼西亚群岛和复活节岛也远离所有大陆,但几千年前也有人类定居,这说明人们对星座有早期认识,也用到过某些数学知识。
埃及、美索不达米亚、中国、印度和南美等很多古文明很快就积累了相当复杂的数学知识。这些数学知识往往都与基本功扎实的专业人员有关。
大家都知道,许多古文明,如中国、苏美尔人、巴比伦人、埃及人、希腊人,都在儿童教育上投入了大量时间和精力。但很多人不知道,印度、中美洲和南美洲其实也曾经大力提供类似的训练,比如奥尔梅克人、玛雅人、印加人以及后来的阿兹特克人。
日本也有正规的培养体系。针对上层阶级,日本的培养体系既包括兵器的运用,也包括智力教育,比如阅读、写作和数学。所有这些古文明都建立了正规的儿童培养体系和信息记录方法。
印度北部那兰陀大学④大约建立于公元前472年, 软件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下载 mobi epub pdf txt 电子书 格式
软件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下载 mobi pdf epub txt 电子书 格式 2024
软件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下载 mobi epub pdf 电子书软件工程通史(1930-2019)
评分很好
评分呵呵呵呵呵呵呵呵呵呵呵呵可以
评分很好
评分呵呵呵呵呵呵呵呵呵呵呵呵可以
评分软件工程通史(1930-2019)
评分挺好,然后这个书里头的东西都介绍的很详细
评分专业书,比较新,希望对学习??帮助!
评分内容很空泛,不值得买
软件工程通史(1930-2019) [The Technical and Social History of Software Engineering] mobi epub pdf txt 电子书 格式下载 2024