公认最早的计算机设备是算盘,发明于美索不达米亚,大约公元前2500年
是手动计算器,用来帮助加减数字用的,它存储着当前计算状态,类似于如今的硬盘
人们制造算盘的原因是,社会的规模已经超出个人心算的能力,一个村子里有上千人和上万头牛
算盘有很多的变种。
后来的4000千年,又发明了其他的计算仪器,比如星盘,用于在海上计算在海上的维度
或者计算尺,帮助计算乘法和除法
人们还创造了上百种时钟,用来算日出,抄袭,天体位置,或者用来计时
这些设备,让原先很费力的事儿变得更快,更简单,更精确
减低了门槛,加强了我们的能力,
计算机先驱Charles Babbage说过:随着知识的增长和新工具的诞生,人工劳力会越来越少。
目前讲到的工具还都不是计算机。最早使用Computer这个单词的文献是1963年的一本书,作者是Richard Braithwait
指的不是计算机,二十一种职业,“I have read the truest computer of times, and the best arithmetician that ever breathed, and he reduceth thy dayes into a short number.”
“我听说过的计算着里最厉害的,能把好几天的工作量大大缩减”
这里的Computer指的是负责计算的人,他们有的时候会使用机器帮忙,但大部分时候靠自己。
这个职位一直到1800年代末期(the late 1800s)还存在,
之后Computer逐渐开始代表机器设备,其中“步进计算器”最有名,Step Reckoner,由德国博学家polymath 戈特弗里德.莱布尼茨于1694年创造
莱布尼茨说过:……让优秀的人浪费时间算数简直是侮辱尊严,农民用机器算的一样准
“… it is beneath the dignity of excellent men to waste their time in calculation when any peasant colud do the work just as accurately with the aid of a machine.”
“步进计算器”有点像汽车里的里程表,不断累加里程数,它有一连串可以转动的齿轮,每个齿轮有十个齿,代表数字0到9,当一个齿轮转过9,它就会转回0,同时让旁边的齿轮进1个齿,有点像算盘超过10一样,做减法时,机器会反向运作。
利用一些巧妙的机械结构,步进计算器也可以做乘除法。乘法和除法实际上只是多个加法和减法。
举例,17除以5,我们只要减5,减5,减5,直到不能再减5了,我们就知道 17=5x3 + 2
步进计算器可以自动完成这种操作,它是第一台可以做“加减乘除”全部四种运算的机器
它的设计非常成功,以至于沿用了3个世纪。
不幸的是,即使有机械计算器,许多现实问题,依然需要很多步计算(一下加大于1的数字?)
算一个结果可能需要几个小时甚至几天,而且这些手工制作的机器非常昂贵,大部人买不起
所以在20世纪以前,大部分人会用预先计算好的计算表PRE-COMPUTED TABLES,这些计算表由之前所说的“人力计算器”编写
human computers (应该指的是职业算术人员)。如果你想知道867,5309的平方根,与其花一天时间来手摇“步进计算器”,不如花一分钟在表里找结果。
速度和准确在战场上尤为重要。因此军队很早就开始使用计算解决复杂问题。如何精准瞄准炮弹是一个很难的问题。
19世纪,这些炮弹的射程可以达到1公里以上,因为风力,温度,大气压会不断变化,想打中船一样大的物体也非常困难,于是出现了射程表,炮手可以查环境和射击距离,这个表会告诉他们角度设置成多少,这些射程表很管用,二战中被广泛应用
问题是如果改了大炮或者炮弹的设计,就需要重新算一张表,这样很耗时而且会出错。
在1822年Charles Babbage 在1822年写了一篇论文,向皇家天文学会,指出了这个问题,标题是“机械在天文与计算表中的应用”。他提出了一种新型机械装置叫“差分机”(Difference Engine)一个更复杂的机器,能近似多项式(could approximate polynomials)多项式描述了几个变量之间的关系,比如射程和大气压,多项式可以用于近似对数和三角函数, 这些函数手算相当麻烦。他在1823年开始建造差分机,并在接下来的20年,试图制造和组装2万5个零件,总重接近15吨。不幸的是该项目最终放弃了。但是在1991年,历史学家,根据他的草稿做了一个差分机,而且它还管用。
但更重要的是,在差分机的建造期间,他构想了一个更复杂的机器-分析机(the Analytical Engine),不像差分机、步进计算器和以前的其他计算设备,分析机是“通用计算机”(general purpose computer),它可以做很多事情,不只是一种特定计算,设置可以给它数据,然后按顺序执行一系列操作,它有内存,甚至一个很原始的打印机。就像差分机,这台机器太超前了,所以没有建成。然而这种“自动计算机”的概念 计算机可以自动完成一系列操作是个跨时代的概念,预示着计算机程序的诞生, 英国数学家Ada Lovelace给分析机写了假想的程序,她说:“A new, a vast, and a powerful language is developed for the future use of analysis.” 未来会诞生一门全新的,强大的,专为分析所用的语言。
因此Ada被认为是世上第一位程序员,可以说,分析机激励了第一代计算机科学家。这些计算机科学家把Charles Babbage的点子想法融入到他们的机器,所以他经常被称为“计算机之父”。
到了19世纪末,科学和工程领域中的特定任务会用上计算设备,(计算设备被用于科学和工程领域中的特殊用途的任务中。)
但是在公司(商业)、政府、家庭(domestic life)中很少能看到计算设备。
然而,美国政府在1890年的人口普查中面临着严重的问题,只有计算机能提供他们所需的效率。
美国宪法要求10年进行一次人口普查,目的是分配联邦资金,国会代表等。到1880年代,美国人口迅速增长,大部分因为移民,人口普查需要七年的时间来手工编制,等做完就过时了。
而且1890年的人口普查,预计需要13年完成,但是人口普查是10年一次。人口普查局找了Herman Hollerith,他发明了打孔卡片制表机,他的机器是“电动机械的“(electro-mechanical),用传统机械来计数,结构类似莱布尼茨的乘法器(步进器 Step Reckoner),但用电动结构连接其他组件。Hellerith的机器用打孔卡,一种纸卡,上面有网格,用打孔来表示数据,举例,有一连串孔代表婚姻状况,如果你结婚了,就在”结婚”的位置上打孔,当卡插入Hollerith的机器时,小金属针会到卡片上,如果有一个地方打孔了,针会穿过,进入到一小瓶汞中,汞可以联通电路。(when the card inserted into Hollerith’s machine, little metal pins would come down over the card, if a spot was punched out, the pin would pass through the hole in the paper and into a little vial of mercury, which completed the circuit.)
电路可以驱动电机,然后给“已婚“的齿轮+1,Hollerith的机器速度是手动的10倍左右,使人口普查在短短两年半内完成。给人口普查办公室省了上百万美元。企业开始意识到计算机的价值(the value of computing),可以提升劳动力,以及数据密集型任务,来提升利润。比如会计,保险评估和库存管理等行业,为了满足这一需求,Hollerith成立了制表机器公司。这家公司后来在1924年和其他机械制造商合并,成为了"国际商业机器公司",简称IBM(International Bussiness Machines Corporation)。你可能听说过IBM。
这些电子机械的"商业机器"取得了巨大成功,改变了商业和政府。到了1900年代中叶,世界人口的爆炸和全球贸易的兴起。要求更快,更灵活的工具来处理数据,为电子计算机的发展奠定了基础,我们下周再讨论。
总结:
提到的设备:算盘->步进计算器->差分机->分析机->打孔卡片制表机
提到的人名:Charles Babbage, Ada Lovelace
- 最早的计算设备是算盘,举例如何使用
- Computer从指代职业变成指代机器
- 机器里有名的是:步进计算器,第一个可以做加减乘除的机器
- 炮弹为了精准,要计算弹道,二战是查表来做的。但每次改设计了就需要做一张新表
- Charles Babbage提出了差分机,在构造差分机期间,提出了分析机,分析机是通用计算机
- Lovelace给分析机写了假想的程序,因此成为了第一位程序员
- 人口普查10年一次,Hellerith的机器用打孔卡制表机大大提升了效率
https://www.bilibili.com/video/BV1EW411u7th/?p=1&vd_source=ccb6862d6e2cae82116a0b81a0aa468c