第五章 计算机中的精灵 计算机奏出了音乐
脸上带着傻笑的人是深藏不露的人。
——伦农/麦卡特尼
1975年4月16日晚上,在加州门洛帕克市的一所小学中举行的霍姆布鲁计算机俱乐部会议上,史蒂夫·多姆皮尔做了一次令人难忘的表演。
多姆皮尔并不是个演员,他看上去是个瘦高身材、动作敏捷的年轻人,长而直的头发一直披到后背的中间,下身着一条牛仔裤,上身穿一件随意的运动衫,“它喜欢用年轻人的习惯用语说话,说话的速度很快。”李·费尔森斯坦回忆道:“当他认为没有必要咬文嚼字的时候,便喜欢说一些‘废话’。”
多姆皮尔拥有一台Altair计算机。当时参加计算机俱乐部会议的人中间很少有人见过这种机器。由于MITS公司尚未正式开始向客户供应Altair计算机,因此多姆皮尔不得不亲自乘飞机到阿尔伯克基去弄了一台。跑1000英里去弄一个价值397美元的玩具,在别人看来无异于发疯,然而多姆皮尔却认为这完全不值得大惊小怪。他对俱乐部会议的与会者说,这是一台真正的计算机。这台真正的计算机现在就摆在这里,并且人人都可以买一台。
自己买一台计算机?大家心里都提出了一个疑问。通常情况是只有极少数人才打算为自己买计算机。计算机一般是由穿着白大褂的技术人员控制着的,这些人担当着计算机与普通用户之间的中介人的角色。当天晚上与会者中的技术幻想家被多姆皮尔的兴奋激动深深地感染了,他们开始想象如果自己有一台计算机的话,他们将能做些什么,或者说一旦他们拥有自己的计算机,他们将能干些什么。
当天晚上多姆皮尔向与会者展示的计算机使他们懂得了他的思想是多么激进。
李·费尔森斯坦回忆道:“他带着他的Altair计算机和其他‘附件’来到了会场,弯着腰将机器安装在靠门的一个角落。他将一根电源线拉到门厅里,插入那里的一个电源插座,然后弓着背伏在Altair计算机上,通过前面板上的开关,输入他的程序,对于人们提出的所有问题,他一概回答说‘等会儿就知道了。’”
与会者对多姆皮尔的计算机产生了很大的兴趣,但是由于它没有显示器,也没有键盘,并且内存又很小,因此认为它没有太大的功能。不过有些人认为多姆皮尔也许能够展示一些有趣的功能。他是个踏踏实实讨人喜欢的小伙子,在他的身上闪耀着计算机的火花。李·费尔森斯坦好奇地想知道多姆皮尔究竟能用Altair计算机来做什么。他想,如果说有的人喜欢猎奇看热闹的话,那么多姆皮尔是个喜欢探寻珍宝的人。
显然他不是个不喜欢猎奇看热闹的人。多姆皮尔花了几分钟时间拨动复杂的开关,输入了他的程序。他知道,如果稍有差错,输入程序的整个过程就得重来。这时,正当他完成了程序输入的时候,有人踩掉了电源线,结果前面的工作前功尽弃。他重新插好电源线,又重新启动机器,耐心地输入他的程序。最后终于再次完成了所有的操作。
这时他站直了身子,对大家简单地说了一句话,这句话只是对“等会儿就知道了”这句话的补充说明。费尔森斯坦回忆道:“对于究竟会出现什么情况,他什么也没有说。这时,从他放在Altair计算机上的便携式收音机喇叭中开始传出噪声,接着发出了一种声音,最后传来了音乐声。我们立即听出这是甲壳虫歌曲‘山野莽汉’的美妙旋律。”
多姆皮尔不等人们鼓掌,便对大家说:“等一等,后面还有。它要开始自动播放音乐了。”
这时,从收音机喇叭里传出“戴西,戴西(双人自行车)”的音乐。
费尔森斯坦回忆道:“1960年在贝尔实验室我们第一次听到计算机‘演唱’的这首歌,而现在这首歌却从这个完全是业余爱好者开发的设备中传出来,这使我们感到异常惊奇。”
音乐声停止,掌声响起。全体与会者起立给多姆皮尔报以热烈的掌声。
从技术上讲,多姆比尔的表演只不过是耍了点小聪明,这并不是人们完全不熟悉的技巧。他只是利用了小型计算机的一个特性,但结果却在后来的5年里给这位计算机主人的邻居带来了无尽的烦恼。计算机会发出射频干扰,使电视画面出现雪花,给无线电传输产生静电干扰。当多姆皮尔得知Altair计算机产生无线电干扰时,他决定解决这种静电干扰问题。通过认真思考,他弄清了如何修改他的程序,以便控制噪声的频率和持续时间。
多姆皮尔的“收音机接口”小程序如果写在纸上,那么对于不了解它的奇妙作用的任何编程员来说,看上去一定感到莫名其妙,但是这个小程序却能够将静电干扰转换成人能听懂的音乐。一年之后,在《多布博士》杂志上,多姆皮尔发表了一篇介绍他的研究成果的文章,题目为“一种音乐”,将这次演示称为“Altair计算机的第一个音乐会”。
不过霍姆布鲁计算机俱乐部会议的与会者能够理解多姆皮尔的演示所具备的革命性意义。多姆皮尔也懂得,通过将这种计算机用于如此普通和完全是非专业的目的,他就在一个崭新的领域中树起了一面旗帜。他向人们宣布,这种计算机属于我们,正是这种违背计算机卫道士精神的行为,而不是多姆皮尔的技术才能,才在那天晚上受到与会者的热情鼓励。
多姆皮尔编写的程序很短,也很简单。Altair计算机不具备从事复杂操作的内存。当时计算机业余爱好者对硬件的兴趣超过了软件。毕竟他们当中的许多人一直梦想拥有一台自己的计算机,他们不能为并不存在的计算机编写程序。但是,随着Altair计算机的问世,软件不仅变得可以使用,而且也变得非常重要。
这些早期的计算机爱好者没有别的选择,他们只能自己来编写他们的软件。当时没有人会想到任何人都可以向其他人购买软件。计算机业余爱好者编写了一些较小的程序,这些程序对计算机并没有太大的用处,而只是用来展示其潜在的功能而已。
在微机开始改变世界之前,就已经需要软件将游戏变成有用的工具。少数开拓者在早期计算机内存非常有限的情况下努力工作,开发出一些非常巧妙的程序。随着内存的增加,可以编写更加复杂和有用的程序。最早的较为复杂的程序往往华而不实,但是不久就出现了比较实用的商务和财会应用软件。
计算机编程最初是业余爱好者搞起来的,后来很快就变成一项重要的商业经营活动。
新型计算机如果要真正发挥作用,必须具备两种程序,一种是操作系统,另一种是高级语言。操作系统是一整套程序的集合,用于控制磁盘驱动器之类的输入/输出设备,将信息输入内存并从内存中取出信息,并且可以自动执行计算机用户想要执行的所有其他操作。实际上用户通常是通过操作系统来对计算机进行操作的。大型计算机拥有其操作系统,而且许多人都知道微机也需要操作系统。
每一台计算机也必须具备所谓的机器语言,机器语言实际上是指计算机能够识别的一组命令。这些命令只是用来激活机器的基本操作,比如在计算机的内存寄存器之间传递数据,将数据存入内存,或者对数据执行一些简单的算术运算。只有当能够用单个命令来激活所有这些基本操作的时候,计算机才能得到广泛的应用。这些功能更强并且更有意义的命令集合便称为高级语言。机器语言的复杂性使它成为一种使用很不方便的复杂语言。高级语言使得计算机用户不必了解机器语言的细节就能进行各种操作,因此可使计算机运行得更快,并且能够产生更有意思的结果。
利用程序员工具,可以编写各种各样的应用程序,这种软件可使计算机完成一些实际的操作。不过在1976年的时候,操作系统和高级语言尚未问世,应用软件甚至是更遥远的东西。接着出现的是将计算机变成打字机代用品的文字处理程序,用于跟踪工资单记录和打印支票的财务处理程序以及向计算机用户介绍新的学习方法的教学软件。当时的计算机业余爱好者望着他们新买来的计算机,自己问自己,这些计算机究竟用来干什么呢?他们的答案是,玩游戏。