最初的存储程序计算机

莫奇利和埃克特希望为他们参与发明的成果申请专利(并从中获利),但是他们难以在宾夕法尼亚大学实现这种想法,因为该校当时还没有明确的知识产权划分政策。虽然他们可以申请ENIAC相关的专利,但是宾夕法尼亚大学坚持要得到这些专利的免费授权,以及转让所有相关设计的权利。此外,双方在EDVAC的发明所有权归属方面也无法达成一致。这场相持不下的争执最终让莫奇利和埃克特在1946年3月底离开了宾夕法尼亚大学。76

他们在费城成立了埃克特–莫奇利计算机公司的前身,他们是将学术领域的计算机技术投入商用的先驱(他们的公司以及申请中的专利在1950年被雷明顿·兰德收购,后者在经过多次并购之后先后更名为斯佩里·兰德和优利系统)。UNIVAC是他们在创业期间研制的一款计算机,购买这款计算机的客户包括美国人口普查局和通用电气公司。

在1952年的美国总统大选之夜上,如同电影明星一般的UNIVAC在CBS(哥伦比亚广播公司)电视网的大选专题报道中出尽风头。CBS的年轻主持人沃尔特·克朗凯特(Walter Cronkite)不确定这台巨型机器的可靠程度能否比得上他们的专业特派记者,但他认为这也许可以为观众带来一些有趣的看点。莫奇利和埃克特从宾夕法尼亚大学请来了一位统计学家,他们共同为UNIVAC制作了一个程序,它可以将部分样本选区的早期投票情况和往届的大选结果进行比较。到了美国东部时间晚上8点30分的时候,全美大部分的投票站都还没有截止投票,而这时UNIVAC已经以100∶1的确定性预测出德怀特·艾森豪威尔将会轻松击败阿德莱·斯蒂文森(Adlai Stevenson)。CBS起初没有公布UNIVAC的预测结果,克朗凯特只是告诉观众们计算机还没有完成计算。不过随后的计票结果表明艾森豪威尔果然以悬殊的差距在大选中胜出,这时克朗凯特将直播信号转到特派记者查尔斯·科林伍德(Charles Collingwood),后者向观众承认,UNIVAC其实在当晚早些时候就已经预测出了这个结果,只是CBS没有将其对外公开。UNIVAC从此成为以后每届大选之夜的明星和保留节目。77

虽然在宾夕法尼亚大学工作的女程序员没有被邀请参加ENIAC的庆功宴,但是埃克特和莫奇利没有忘记她们的贡献。他们聘请了贝蒂·斯奈德和琼·詹宁斯加入他们的公司。斯奈德在婚后的名字是贝蒂·霍伯顿,她继续走在了编程领域的最前端,先后参与了COBOL和Fortran编程语言的开发工作;詹宁斯则嫁给了一位工程师,并改名为琼·詹宁斯·巴尔提克。莫奇利本来也想聘请凯·麦克纳尔蒂,然而他在妻子溺水身亡之后,转而向麦克纳尔蒂求婚。他们在婚后育有5个孩子,莫奇利也继续投身到了UNIVAC的软件设计工作当中。

莫奇利还请来了这些女程序员的前辈——格雷斯·霍珀。“他会让其他人去尝试不同的东西,”当被问到自己为什么会被说服加入埃克特–莫奇利计算机公司时,霍珀回应道,“他鼓励创新。”78 她在1952年开发了世界上第一个可行的编译器“A–0系统”,它可以将符号化的数学编码转换成机器语言,从而降低普通人编写程序的难度。

霍珀有着像船员一样的行事风格,所以她更加看重“同舟共济”的协作方式。她促进了开源创新方式的发展,她曾将初期版本的编译器发给编程领域的好友和熟人,请求他们协助改进这些编译器。她在担任COBOL语言(世界上最早的跨平台标准化商用计算机语言)开发项目的技术主管时也采用了这种开放式的方法。79 她的直觉认为编程应该是独立于机器本身的存在,这点反映了她对共治(collegiality)的偏好,她相信即使是机器也应该高效地协同工作。这同时也说明她已经提前洞察到了计算机时代的一个决定性的本质:硬件将会被商品化,而编程才是真正的价值所在。直到比尔·盖茨出现之前,大多数男性都没有这样的远见。[4]

冯·诺依曼不屑于埃克特和莫奇利唯利是图的做法。“埃克特和莫奇利是一个商业团队,他们满脑子都是商业专利的策略,”他向一位朋友抱怨道,“我们不能采用学术团队的开放方式直接或间接地与他们共事。”80 作风正派的冯·诺依曼也不介意利用自己的想法来赚钱。他在1945年与IBM签订了一份个人顾问合约,为其提供自己所有发明的使用权。尽管这是一份完全合法正当的协议,但他的做法还是激怒了埃克特和莫奇利。“他将我们的想法出卖给了IBM,”埃克特指责道,“他满嘴都是骗人的假话。他是个说一套做一套的人,不值得他人的信任。”81

在莫奇利和埃克特离开之后,宾夕法尼亚大学很快就丧失了作为创新中心的地位。冯·诺依曼也回到了普林斯顿大学的高等研究院,跟随他一同前往高等研究院的还有赫尔曼·戈德斯坦和阿黛尔·戈德斯坦,以及包括亚瑟·伯克斯(Arthur Burks)在内的多位关键工程师。“也许研究机构也会像人一样出现疲劳。”赫尔曼·戈德斯坦后来对宾夕法尼亚大学作为计算机研发中心的衰落做出了这样的反思。82 计算机在当时被认为是一种工具,而不是一个学术研究的对象。在学术界,几乎没有人能够预想到计算机科学将会成为一个比电气工程更为重要的学科。

尽管宾夕法尼亚大学出现了大批人才的流失,但它仍然能够在计算机发展历程当中起到一个更为重要的作用。1946年6月,计算机领域的大部分专家(包括冯·诺依曼、戈德斯坦、埃克特、莫奇利和其他几位素有嫌隙的人物)齐聚宾夕法尼亚大学参加一个叫作“摩尔学院讲座”的系列演讲和研讨会,这是他们传播计算机知识的平台。这个持续8周的系列活动还吸引了霍华德·艾肯、乔治·斯蒂比兹、曼彻斯特大学的道格拉斯·哈特里和剑桥大学的莫里斯·威尔克斯等人的参与。他们的讨论焦点是存储程序计算机结构,以及它对实现图灵所构想的通用型机器的价值。作为讨论的成果,莫奇利、埃克特和冯·诺依曼等人在宾夕法尼亚大学共同制定的设计概念成为日后大部分计算机的基础。

最初的存储程序计算机其实有两台,它们几乎同时在1948年的夏天制成。其中一台是经过改进的ENIAC。在工程师尼克·梅特罗波利斯和理查德·克利平格的协助下,冯·诺依曼和戈德斯坦研究出了一种利用ENIAC其中三个转换装置来储存基本指令集的方式。83 这些转换装置本来是用于储存炮弹阻力相关的数据的,不过由于这台机器不再需要计算弹道表,所以这部分的存储空间就可以用作其他用途。这次的实际编程工作也是由女性完成的,她们分别是:阿黛尔·戈德斯坦、克拉拉·冯·诺依曼(Klára von Neumann)和琼·詹宁斯·巴尔提克。“我与阿黛尔等人再度合作,我们这次的工作是为ENIAC编写一些原始代码,使得它的转换装置可以用于储存代码指令,从而将ENIAC转变成一台存储程序计算机。”巴尔提克回忆道。84

重新配置的ENIAC在1948年4月投入使用,它带有一个只读存储器,这点意味着它难以在运行的过程中调整程序。此外,它的水银延迟线存储器的性能欠佳,而且需要精密的工程技术才能制作出来。一台来自英国曼彻斯特大学的小型计算机能够避免上述两个缺点,这台被称为“曼彻斯特宝贝”(the Manchester Baby)的机器是按照存储程序计算机的功能重新设计的,它在1948年6月开始运作。

曼彻斯特大学计算机实验室的主管是图灵的导师麦克斯·纽曼,而这台新型计算机的研发工作主要由弗雷德里克·卡兰德·威廉姆斯(Frederic Calland Williams)和托马斯·基尔伯恩(Thomas Kilburn)完成。威廉姆斯发明了一种利用阴极射线管的存储方式,与水银延迟线相比,这种方式可以使计算机速度更快、结构更简单。这台机器的成功也促进了另外两台计算机的研发,它们分别是性能更为强大的曼彻斯特马克一号(Manchester Mark I),它在1949年4月投入使用;以及莫里斯·威尔克斯在同年5月与剑桥大学团队共同完成的EDSAC。85

当这些机器的研发工作在进行的时候,图灵也在尝试制造一台存储程序计算机。在离开布莱切利园之后,他进入了英国国家物理实验室工作,这是一所位于伦敦的高级研究机构。他在这里设计了一台名为自动计算机(Automatic Computing Engine)的机器,这是向巴贝奇的两台机器致敬的作品。然而,这台自动计算机的研发工作一直无法顺利进行。到了1948年,图灵已经不能忍受这种断断续续的开发进度,而且他的同事也没有兴趣推动机器学习和人工智能的发展,对此感到失望的他决定离开国家物理实验室,转而加入麦克斯·纽曼在曼彻斯特大学的团队。86

同样,当冯·诺依曼在1946年回到普林斯顿大学高等研究院之后,他马上就开展了存储程序计算机的研发工作。乔治·戴森在《图灵的大教堂》(Turing’s Cathedral )一书当中详尽记录了这项工作的历程。这台研发中的计算机被称为“IAS机”(IAS Machine),时任高等研究院院长弗兰克·艾德洛特(Frank Aydelotte)以及德高望重的研究院理事奥斯瓦尔德·维布伦都是这个项目的坚定支持者。他们竭力抵御了其他研究员对这个项目的批评——后者认为计算机器的研发项目将有辱高等研究院作为理论思维殿堂的使命。“他公开表明了自己对黑板和粉笔之外的数学工具的浓厚兴趣,这种做法显然让他的一些最为饱学多识的同事感到愕然,甚至是惊恐,”冯·诺依曼的妻子克拉拉回忆道,“他希望制造一台电子计算机器,然而这个计划在高等研究院的神圣穹顶之下至少是不被赞赏的。”87

高等研究院本来为逻辑学家库尔特·哥德尔的秘书安排了一个办公室,但由于哥德尔本人不需要秘书,所以这里就成为冯·诺依曼和他的团队成员的秘密研发基地。他们在1946年发表了多篇论文,这些论文详细地描述了他们的计算机设计。他们把这些论文分别寄给了美国国会图书馆和美国专利局,他们这样做并不是为了申请专利,而是为了声明他们想要将这些研究成果纳入公共领域。

他们的机器在1952年开始完全投入运作,然而,在冯·诺依曼前往华盛顿加入原子能委员会之后,这台机器也被逐渐废弃了。“我们的计算机团队的衰落无论对于普林斯顿大学还是整个科学界来说都是一场灾难,”高等研究院成员及物理学家弗里曼·戴森(Freeman Dyson,乔治·戴森的父亲)如是说,“这意味着在20世纪50年代这个关键时期,我们竟然没有一个可以聚集最高水平的计算机人才的学术中心。”88 相反,从20世纪50年代开始,计算机技术的创新阵地已经转移到了企业领域,引领这些创新的正是费兰蒂(Ferranti)、IBM、雷明顿·兰德和霍尼韦尔这样的公司。

计算机创新阵地的转移将我们重新带回了专利保护的话题。如果当时冯·诺依曼和他的团队没有离开计算机技术创新的最前沿,并把他们的创新成果继续留在公共领域,这种开源的创新方式会不会为计算机带来更加迅速的发展呢?抑或市场竞争和知识产权带来的资本回报可以刺激更多的创新出现呢?对于互联网、万维网和某些类型的软件来说,开放模式被证明是更加可行的。但是对于硬件来说,比如计算机和微型芯片,专利保护制度正是在20世纪50年代涌现的大量硬件创新的源头。专利化的创新方式能够行之有效(尤其是在计算机领域)的原因在于,大型企业可以更好地完成计算机的研发、制造和营销工作,而它们需要通过专利制度来筹集运营的资金。此外,在20世纪90年代中期以前,硬件一直要比软件更容易得到专利保护。[5] 然而,这种专利保护制度也对硬件创新产生了负面的影响:专利化的经营模式会使企业变得故步自封,这点让它们错过了在20世纪70年代初出现的个人电脑革命。

《创新者:一群技术狂人和鬼才程序员如何改变世界》