如果让计算机本身来回答“第一台计算机”是什么时候诞生的,只要打开搜索引擎,输入这个问题,就会看到各种各样的答案,其中大部分是:世界上第一台计算机是1946年诞生于美国的电子数值积分计算机,简称ENIAC。
其实这个问题没有标准答案。ENIAC只是答案之一。在历史上,人们长期以来一直试图制造能自动计算的机器。经过多年的发展,计算机有了今天的样子。很多种类的电脑都可以算作“第一台电脑”,就看你怎么定义“电脑”了。
如果能帮我们做算术的东西可以叫计算机的话,古代的算盘也应该叫计算机,但完全是人工的。从17世纪到20世纪的几百年间,有很多电脑没有电。这些计算机没有电路板,只有一堆机械齿轮。
17世纪,法国有个“全能超人”帕斯卡。他是数学家、物理学家、哲学家、流体动力学家和概率论的创始人之一。帕斯卡做了一个盒子,里面有一堆齿轮,上发条就能转动。但这台“第一台机械计算机”只能进行简单的加减运算,水平大概只相当于幼儿园小朋友。后来德国数学家莱布尼茨做出了可以加减乘除的机械计算机,计算能力达到了小学生的水平。英国数学家巴贝奇在19世纪20年代制造了差分机,他可以计算一些数学函数。虽然巴贝奇梦想做一个功能更多的第二代差分扩展,但最终没有成功。
后来人们意识到,如果只用机械齿轮进行计算,计算能力是极其有限的,只有另一种方法让计算机拥有更强的计算能力。这样,电子计算机就制造出来了。用电工作比用齿轮快,所以电子计算机有更强的计算能力。第二次世界大战期间,飞机和炮弹在战场上的飞行轨迹需要大量复杂的计算,这给了电子计算机一展身手的机会。以世界上第一台大型自动数字计算机Mark 1为例。它可以存储72组数据,每组数据有23个小数位。加法需要300毫秒,乘法需要6秒,除法需要15.3秒。虽然现在看来这个速度比较慢,但是已经实现了计算技术的历史性突破,帮助人们完成了大量的计算任务。
那么,谁是电子计算机的发明者呢?也有几个答案。1936年,英国数学家图灵首次提出了程序与输入数据交互产生输出的计算机思想,后人将这台机器命名为通用图灵机。1938年,第一台带继电器的计算机“Z-1”出现,但继电器有机械结构,不完全是电子器件。1942年,阿塔纳索夫和贝利发明了第一台带有真空电子管的计算机,并以他们名字的首字母命名为ABC。但是ABC只能解线性方程组,不能做其他工作。在图灵的指导下,第一台可以编写程序执行不同任务的计算机——COLOSSUS于1943年在英国诞生,并被用于密码破译。
公认的人类历史上第一台现代电子计算机是ENIAC,1946年诞生于宾夕法尼亚大学。虽然比前面提到的机器晚出生一段时间,但它具有当今计算机的主要结构和功能,是通用计算机,也是第一台相当于通用图灵机的计算机。虽然在今天,ENIAC的计算能力可能比不上小型计算器和智能手机,但在当时已经很强大了。ENIAC很大,占了好几个房间,全身都是很多绞线和real 空管。它的功耗也非常惊人。工作的时候,全城的人都知道,因为家家户户的灯都调暗了。起初,ENIAC的程序设置是通过手动移动开关和连接电线来完成的,换一次程序需要一周的时间。为了提高效率,工程师们设想程序和数据应该存储在内存中。数学家冯·诺依曼用数学语言系统地阐述了这一思想,提出了存储程序的计算机模型,后来被称为冯·诺依曼机。
现在,人们普遍认为图灵和冯·诺依曼是现代计算机理论最重要的奠基者。前者建立了图灵机的理论模型,发展了可计算理论。后者决定了现代计算机的基本结构。但是,很难简单地把计算机的发展归功于某一个人或某一台机器。历史上每一台产生创新火花的计算机都有资格成为计算机史上的第一台,它是人类智慧的共同结晶。