康拉德·楚泽

这些在1937年涌现的计算机先驱们都不知道的是,他们的工作成果竟然不如一位在父母家中做研究的德国工程师。康拉德·楚泽(Konrad Zuse)当时正在进行一台能够从打孔纸带读取指令的二进制计算器的原型设计。这台机器先后经过了多次改进,不过它的第一个版本“Z1”只是一台机械机器,它并非使用电力驱动,也不含有任何电子元件。

跟许多数字时代的先驱一样,楚泽从小就对艺术和工程学非常感兴趣。从工程学院毕业之后,他得到了一份应力分析员的工作,在柏林的一家飞机制造公司上班,他的工作内容是求解含有材料负载、强度和弹性等系数的线性方程。即使在机械计算器的帮助之下,一个人也几乎不可能在一天之内解出含有6个未知数的联立线性方程。如果线性方程的变量达到25个的话,求解过程将需要一年的时间。因此楚泽非常希望可以将数学方程的冗长求解过程机械化,很多先进的计算设备都是在这个愿望的驱使下发明的。他当时住在父母的家中——位于柏林滕佩尔霍夫机场附近的一所公寓,并把他们的起居室改装成自己的工作室。25

在楚泽制造的第一台计算机中,二进制数会被储存在多块布满插槽和插针的薄钢板当中,这个装置是由楚泽和他的朋友们使用线锯做出来的。他最初是使用打孔纸带来输入数据和程序,不过他很快就改用了废弃的35毫米电影胶片,因为这种材料不仅强度更高,而且成本也比纸张更低。这台Z1计算机在1938年制成,它可以用于解决部分数学问题,但是它的运作过程不太可靠。这台机器的所有零件都是手工制造的,所以它们很容易会出现故障。遗憾的是楚泽没有在贝尔实验室这样的地方工作,也没有参与到哈佛大学和IBM这样的合作项目当中,不然他就可以在其他工程师的协助下更好地发挥出自己的才能。

然而,Z1计算机确实证明了楚泽设计的逻辑概念在理论上是可行的。楚泽在制造Z1的过程中得到了大学校友赫尔穆特·施莱尔(Helmut Schreyer)的帮助,后者强烈建议他们应该制造另外一台使用电子真空管取代机械开关的计算机。如果他们马上这样做的话,那么他们将会成为历史上第一台可行的现代计算机(二进制、电子化和可编程的计算机)的发明者。但是在咨询过工程学院的专家之后,楚泽发现自己无法承受一台含有接近2 000个真空管的设备的制造成本。26

于是在制造Z2计算机的时候,他们决定使用从电话公司收购回来的二手机电继电器开关,虽然它们的运行速度远远比不上真空管,但是更为耐用和廉价。他们最终制造了一台使用继电器作为运算器的计算机。但是它仍然采用了机械存储器,也就是带有活动插针的薄钢板。

楚泽在1939年开始研制自己的第三台计算机Z3,这台机器的运算器、存储器和控制器都采用了机电继电器。Z3计算机在1941年制造完成,它是第一台完全可行的通用可编程数字计算机。虽然它无法直接处理程序中的条件转移,但是它在理论上可以实现一台通用图灵机的功能。它与后来的计算机的主要区别在于它使用的是笨重的电磁继电器,而不是像真空管和晶体管这样的电子元件。

楚泽的好友施莱尔随后写了一篇题为《电子管继电器及其开关技术》的博士论文,他在论文中提倡使用真空管来制造快速高效的计算机。但当他和楚泽在1942年向德国陆军提出这个想法时,高级军官们表示他们有信心在两年之内打赢这场战争,所以就没有必要花同样的时间制造一台用不上的机器。27 与计算机相比,他们对制造兵器更感兴趣。于是楚泽被迫离开了计算机的研究工作,重新回到了飞机制造的岗位。1943年,盟军对柏林实施空袭,楚译的计算机和设计手稿都在这场空袭当中被炸毁了。

虽然楚泽和斯蒂比兹的研究工作是互相独立的,但他们都想出了采用继电器开关来制作可以处理二进制计算的电路。在战争的隔绝之下,为什么这两个团队会在同一时间出现这个想法呢?有一部分原因是技术和理论的进步造就了成熟的时机。跟许多创新者一样,楚泽和斯蒂比兹都对继电器在电话电路中的应用非常熟悉,而将这种应用结合到数学和逻辑学的二进制运算也是顺理成章的事情。同样对电话电路了如指掌的香农也做出了一项相关的理论突破,就是电子电路能够执行布尔代数中的逻辑任务。不久后,世界各地的研究人员都开始认识到数字电路将会成为计算技术的关键,这种想法甚至深入到了艾奥瓦州中部这样偏僻的地区。

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