一文读懂计算机/软件发展史(上)

早在3.5万年前,尼安德特人和克罗马农人可能就已经学会了数数,捷克斯洛伐克距今3.3万年前的狼骨和距今3.5万年前的沸沸骨,上面都有并排的划痕。事实证明,甚至早于使用语言,人类就已经懂得使用数学。

(尼安德特人) 

早期人类对于数学的认知主要来源于几个关键问题:

  • 通过计算物品来记录主权;

  • 理解加法和减法两种基本运算;

  • 测量角度,比如东向和西向,以免迷路;

    ……

文明不断演进,数学和信息逐渐被用来解决更加复杂的问题:

  • 为建筑用途而计算实际的长宽高;

  • 交换物品而计算重量和体积;

  • 计算长途距离,比如城市之间的距离;

  • 理解乘除法运算规则;

    ……

早期文明中,为了了解数字和数学知识,需要物理设备和抽象推理相结合。显然,有些刻度用来称重;有些则用来计算山体高度;有些记录方法用来跟踪系列事件,例如长时间观测和记录恒星在空中的位移。

考古发现,古城摩亨朱-达罗曾经有过复杂的数学运用——天平秤和称重计就是在这里发现的。摩亨朱-达罗的巅峰时期拥有3.5万名的居民。它的街道非常紧凑且呈网格状,砖和建筑物都有标准的尺度,显示出重复使用的迹象,而这些都是需要精确测量的。

摩亨朱-达罗

随着计算复杂度的不断提升(数学家不断抛出复杂的数学问题)可能是促成计算设备以及计算机软件最终问世的主要原因。自从开始知道计数和数字概念,使用数字化信息的人就饱受困扰,因为总是需要运算速度更快,结果更可靠。这些困扰不外乎是为了解决以下的这几类问题(括号中是这些领域的发展路线):

  1. 复杂数学计算问题(加减法、乘除法、几何、三角、代数、微积分)

  2. 想法/信息的记录问题(石板、书籍、图书馆、数据库、云存储)

  3. 信息的分发渠道问题(口头传播、符号记号传播、文字字母表、互联网)

诸多领域的演变和融合最终推动软件和计算的新纪元。

1930-1939:数字计算的基础

一场经济萧条拨动着西方国家躁动不安的情绪,法西斯主义的恶性发展,纳粹党迅速膨胀成为德意志第三帝国第一大党。集权统治的法西斯体制正加紧扩军备战。1930-1939,世界正面临一场大战。人们意识到想要在这场战争中获得优势,人类需要更快更可靠的高速运算来处理后勤、导弹学、密码分析等问题,但单凭当时的知识还无法造出支持这样计算能力的设备。

1936年,英国著名数学家图灵(Alan Thring 1912-1954)发表了一篇论文《论可计算数及在判定问题上的应用》,这是公认的对带有可执行程序的可工作计算机的描述。

一文读懂计算机/软件发展史(上)_第1张图片图灵(Alan Thring 1912-1954) 

1937年香农(Claude Elwood Shannon 1916-2001)证明电子继电器可以实现不二符号逻辑的概念,论述了计算设备从单纯的数学拓展到可解决逻辑问题的可行性。逻辑处理和数学处理的结合使现代计算机(和软件)具备强大的解决问题的能力。

一文读懂计算机/软件发展史(上)_第2张图片 香农(Claude Elwood Shannon 1916-2001)

图灵、香农、楚泽、阿塔那索夫、艾金、斯蒂比兹和其他人的开创性理论和论文,将在往后的时间里,让人类具备比以往快几千万倍的速度处理逻辑和数学问题。而仅仅几年后,这些概念就对二战的结果产生了实质性的影响。

1940-1949:二战及战后计算机的使用

法西斯的忽视

1938年,居住在德国柏林的楚泽建成第一个原型计算机Z1,并在后续的10年内经历了3次大的改版迭代。Z4运用了大量先进技术,例如通过二进制程序控制并能用穿孔纸带作为输入方法,Z4可以被用于处理条件分支逻辑。过程中楚泽多次德国政府申请更多的电子经费并讨论用于军事用途,但都遭到了拒绝,理由是对战争不重要。

德国政府严重忽视了数字计算的重要性,事实上这项技术重要到能够改变二战的结果。

 从左到右依次是Z1、Z2、Z3

“超计划及“巨人机”

1939年战争一触即发,英国政府将密码学校疏散到白金汉宫的布莱切立公园。在这里图灵和弗劳尔斯等人一起为了制造计算机“巨人”工作了两年。而从一些文件看来,“巨人”很有可能是世界上第一台可操作的计算机。

 

巨人机 

直到1972年,英国的密码破译项目“超计划”都不允许公开,属于超级机密。英美的高官相信超计划使得战争早了至少两年结束。甚至有人指出,如果没有“超计划”,这场战争可能输给德国了。

二战中的计算机

20世纪40年代初期,二战迅速席卷全世界,是历史上破坏性最大的冲突之一。在战争的驱动下,对军事弹道学、密码分析和军需品的快速计算需要激增。在军事上这些刚需的推动下,同盟国和轴心国都加大投入模拟计算机和数字计算机的研制。

数字计算机被同盟国用来破译德国和日本关键的军事情报。模拟计算机被用于海军火炮控制、潜艇鱼雷发射、防空火炮控制和连接到自动驾驶仪的投掷设备。这些技术在战场上大放异彩。

一文读懂计算机/软件发展史(上)_第3张图片

在这个十年初期,“computer”一词用于描述执行数学计算的人员,而在这个十年末期,这个词逐渐成为了高速电子计算设备的名称。战后,因军事需要而发展的计算机逐渐开始为商业所用。

1950-1959:开始崛起的全新势力

二战后的世界格局产生了巨大的变化,催生的两大世界霸主:美国、苏联及其盟国之间的冷战一直持续到20世纪50年代。

1949年8月29日,苏联制造的第一颗原子弹爆炸试验成功,苏联一举步入核俱乐部并开始投入高额国防经费到武器系统和计算机技术的发展中,当然美国也不甘示弱。

一文读懂计算机/软件发展史(上)_第4张图片

苏联第一颗原子弹 

 

50年代的世界,计算机在国防领域发挥着越来越重要的影响力。

计算机教育的起点

与此同时,计算机的商业化也正悄悄地改变着历史。20世纪50年代初期,“计算机”既可以做成千上万的复杂数学技术,同时也可以做计费、发工资和纳税等普通的计算。

市场需求推动教育的演变,工科和理科实力雄厚的大学陆续开设计算机和软件课程。加州大学洛杉矶校区1950年的入门课就是菲斯特(Douglas Pfister)和唯尔(Willis Ware)讲的。其他大学也迅速跟进,如普林斯、哈佛和麻省理工大学也都先后在工程学课程中加入计算机相关课程。

两个重要的发明

50年代还诞生了科学史上有两个最重要的发明,一个是晶体管取代真空管,另一个是集成电路的发明取代独立电子元件。

1947年,贝尔实验室的约翰·巴丁(John Bardeen)、沃特·布拉顿(Walter Brattan)和 团队主管威廉·肖克利(William Shockley)研制出一种点接触型的锗晶体管(1956年,三人因此获得诺贝尔奖)。晶体管的问世,是20世纪的一项重大发明,是微电子革命的先声。晶体管出现后,人们就能用一个小巧的、消耗功率低的电子器件,来代替体积大、功率消耗大的电子管了。

一文读懂计算机/软件发展史(上)_第5张图片

 单体晶体管

 时间来到1958年,仙童公司Robert Noyce与德仪公司基尔比(Jacky Kilby)间隔数月分别发明了集成电路,开创了世界微电子学的历史。这个想法在959年被授予专利并很快被美国空军采用。2000年,基尔比因发明集成电路而获得诺贝尔物理学奖。

仙童公司

 可以肯定的是,如果没有晶体管和集成电路,就不会有今天随处可见的任何一种微软计算机电子设备。

50年代的编程语言

1958年,贝尔实验室的数学家和统计学家图基(John Wilder Tukey)在论文中用到“软件”一次,他在文中本质上区别于“硬件”。这是人们首次见到“软件”一词在计算机类文章中使用。

20世纪50年中期,有三种关键的编程语言面试,他们分别是:FORTRAN(公式翻译语言)、LISP(列表处理语言)、COBOL(商业通用语言)。

早期的计算机用高度复杂的机器语言进行编码,会产生大量很难定位和修复的错误,汇编语言引入了记忆源指令,比二进制数和机械语言更容易理解。起初汇编语言与机械语言是一致的,每一行源代码都会转化成单独的机械指令。再后来宏汇编语言的概念扩大了汇编与源代码的适用范围。“程序员”这个职业开始步入上升轨道,很快成为历史上发展最快的职业。

值得一提的是,1958年第一台军用计算机在中国大陆建成。这是一个真空管计算机,名为“901”,是哈尔滨军事工程学院完成的。

901中国第一台军用计算机

第一台商用计算机?

当你试图搞清楚谁研制了全球第一台商用计算机时,你会发现早期商用计算机的历史模糊且混乱。当美国文献称UNIVAC1 是第一台卖给付费客户的商用计算机时,英国文献称LEO1遭遇UNIVAC1一个月就已经交付,另一台英国计算机Ferranti Mark 1也声称早于UNIVAC1。

一文读懂计算机/软件发展史(上)_第6张图片

不管第一台商用计算机是谁制造,计算机作为商业工具的想法都迅速蔓延开来。在后续的二十年里,大批计算机厂商都得以持续发展。

1960-1969:商业化浪潮 | 重塑世界的开始

劳动力的演变

正如最初假设的一样,计算机和软件并不是把办公室工作淘汰掉,而是改变了办公室工作的性质。例如:许多处理医疗记录的文员转变成计算机数据录入人员;处理医疗账款的文员开始使用计算机来跟踪账单,文员工作并没有消失,只是融入了计算机和软件的使用。

在计算机和软件技术的催化下,超过100种的新的知识和工作类型逐渐出现:业务分析师、数据分析师、软件工程师、网站管理员、数据库管理员等等。

软件工程师的岗位发展 

软件需求的喷井式爆发也最直接地推动了程序员岗位的发展,20世纪60年代初,如果你是一个称职的程序员,公司和职位任你挑选。一些公司开始雇佣专业的之业务介绍所或者“猎头”来招聘需要的员工。公司对程序员的需求远远高于了程序员对于公司的需求。

人员的大量涌入也推动者“程序员”的专业化程度提升。1968年10月7日到11日在德国加米施举办的北约会议上,“软件工程”这个词会第一次隆重使用,会议制定的章程在1960年发布,软件开发从临时方法转到科学方法的紧迫性开始广泛扩大。

 一文读懂计算机/软件发展史(上)_第7张图片

1966年,计算机协会(ACM)颁发了第一个图灵奖。这个奖项以图灵的名字命名,为了纪念他对于计算机理论基础的贡献。

二十世纪60年代的十年中,计算机编程职业从最初的的几千人,发展到最后近一百万人。人类历史上很少有一个行业能够发展如此之快。

新的商业模式

不仅是职业,新的行业也开始孵化出新的商业模式。

其中一比较典型的就是“专业化外包”行业。这些公司向需要现代化技术但又不想负担运营成本的公司提供服务。

另一个因为计算机和软件兴起而发展的行业是管理咨询行业。大型的会计公司都开设有软件咨询业务。先驱之一的安达信,这家公司的咨询业务最后独立出去,成为了埃森哲咨询公司,承接现代咨询和外包服务工作。

一文读懂计算机/软件发展史(上)_第8张图片

60年代还有几个大的诉讼案永久地改变了计算机和软件的发展格局。

ENIAC专利诉讼案

第一批诉讼案其实是两个专利侵权案件的诉讼,分别是斯佩里兰德(Sperry-Rand,拥有ENIAC专利)公司诉讼霍尼韦尔(Honeywell)公司和后者对前者的反诉讼。

这个诉讼一直持续到70年代才判决。ENIAC专利涵盖了数字计算机的必备设计和功能特点,因此想要制造数字计算机都需要为该专利所设计到的相同功能点支付高昂的转业费,这导致了财力不够雄厚的公司无法进入到这个行业。

1973年10月19日,联邦法官拉森(Eral R·Larson)裁决ENIAC专利无法执行,被宣告无效。从此之后,几十个公司制造计算机不需要向斯佩里兰德支付专利费用,这个决议对整个行业的发展都有着深远的影响。

(如果这个专利被判有效的话,当时苹果、Altair、天腾、Sun、王安公司等可能根本无法启动,因为专利要求每个公司支付2000万到2.5亿美元不等的费用。)

IBM反垄断诉讼

另一个重大的诉讼案就是IBM由于反垄断诉讼而解除了捆绑软件的销售模式。正是因为捆绑销售模式的拆除,才造就了如今巨大的软件市场。之后的日子里,IBM公司提供操作系统,公司需要自己写应用程序,这也解释了60年代软件从业人员激增的原因。

一文读懂计算机/软件发展史(上)_第9张图片

60年代的编程语言

1960-1969这十年也是编程语言富有成果的十年,许多新的编程语言都得到了发展。包括但不限于以下语言:

一文读懂计算机/软件发展史(上)_第10张图片

不仅语言得到发展,通用编程方法也在这个时期得到了基础奠定。混合语言变成在这个时期开始出现。编程语言的数量激增以及快速迭代也引发了一些问题,例如:

  • 老的、过时语言为遗留程序的维护增加难度

  • 多种语言在统一应用程序中增加了调试难度

  • 语言没有严格的规范规定,选择随程序员的爱好而定

    ……

不可阻挡的影响力

在业务侧,计算机在越来越多的行业发挥了作用。模拟计算机仍然广泛应用于军事领域。1969年7月20日,阿波罗11号将阿姆斯特朗和阿尔德林送上了月球,阿波罗首先使用了数字计算机和软件完成登月计划,所应用的物理计算机是第一个将集成电路和低功耗晶体管技术应用其上的计算机。它被命名为“阿波罗导航计算机”(AGC)。

一文读懂计算机/软件发展史(上)_第11张图片

同时在华尔街。计算机的必要性也逐渐体现出来了,1965年到1968年间,华尔街股票交易量从500万上升到1200万。但是1969年到1970年股票交易量突然下挫,大约100家公司关闭或合并,演变成了华尔街自大萧条以来最严重的危机。华尔街将这失败的原因归咎为办事员的工作量太大而导致的财务记录失控,这十年来90%的运营成本被绑定在文员身上。

1970年,位于商业世界中心的华尔街已经准备好进入计算机时代了。 

 

信息化革命·上(完) 

 

 

 

 

你可能感兴趣的:(无代码开发,概率论,其他,开发语言,java)