5 开发 BASIC 语言

过了一个星期,比尔·盖茨和保罗·艾伦给罗伯茨的公司打电话,

自称是西雅图交通数据公司的代表,说他们研读了《大众电子》杂志上那篇介绍阿尔塔家用计算机的文章,他们已经开发了一种 BASIC 语言, 只要作一点小小的改动,就可以把它用到阿尔塔 8800 上,问罗伯茨对此是否有兴趣。

早在 1964 年,约翰·凯曼尼和托马斯·科茨就创制了 BA-SIC 语言。两位教授在使用了已经颇为流行的 FORTRAN 语言和 COBOL 语言之后,感到它们实在太难掌握,才编制了 BASIC 语言。他们说,这种语言尤其适合门外汉学习,它使人与机器能进行交流。使用这种语言,可以使程序编制工作容易掌握得多。显然,如果阿尔塔 8800 使用了这种程序编制语言,就可以大大拓展它的应用范围,在会计、统计、字处理等许多领域大显身手。不过,罗伯茨从英特尔公司处得知,8080 芯片对 BASIC 那样的语言运行起来还有些力不从心,英特尔公司的人从来就不相信可能为8080 微处理器研制一种工作语言。罗伯茨对此说将信将疑,他内心里希望这个说法是错误的。两个年轻人后来向他证明,他怀疑对了。

罗伯茨接到比尔·盖茨他们的电话,一听声音就知道是两个毛孩子。他压根儿不相信他们说的话,认为他们无非是吹牛说大话罢了。他对他们说,至少已经有 50 个人跑到他这里来对他说类似的话,他说他的态度是只看实际结果。谁最先向他提供成熟的语言,谁就可以同他作生意。对比尔·盖茨他们说的事情,他不以为然。

但是,没过多久,他又收到比尔·盖茨一封信,说他们已经研制出了一种 BASIC 语言翻译器,可以在所有使用 8080 微处理器的计算机上使用。他们愿意通过罗伯茨的公司,出售拷有这个软件的盒式磁带或磁盘。每套软件收费 0.5 美元。

罗伯茨见信上已经把事情说得十分具体,就按照信封上的电话号码给他们去了一个电话,但是电话却打到了湖滨中学,接电话的人根本不知道有这么回事。这使罗伯茨大有再次受骗上当之感。

比尔·盖茨和保罗·艾伦既已夸下海口,就得拿出东西来,而且他们心里很清楚,在这个时候,一定还有别的人有同他们一样的想法,在做同他们一样的工作。他们只好加紧为阿尔塔 8800 设计 BASIC 语言。一连 8 个星期,比尔·盖茨没有去上课,也没工夫再去玩牌。他和保罗·艾

伦夜以继日地呆在计算机旁,要为阿尔塔 8800 机编程,私心里还有一个愿望——想向大家证明英特尔公司的专家们也会下错误的结论。要为这种机器编程,首先应当具备一台这样的机器。可是比尔·盖茨现在是一个穷学生,保罗·艾伦也不过才做了打工仔,拥有自己的计算机只是一种奢望。就连罗伯茨本人,也只有一台供在各地巡回展出的样机。

无奈,只好再次采用迂回战术,在他们已经十分熟悉的 PDP—10 型计算机上模拟阿尔塔的微处理器,而 PDP—10 型计算机在哈佛大学里是不难找到的。

由大卫·奥斯本写的一本 8080 芯片详细说明书,加上《大众电子》上那篇文章,这几乎是他们惟一的参考资料。这位奥斯本也非等闲之辈, 他后来也成了美国计算机革命中的风云人物。保罗·艾伦凭借多年积累的丰富技术知识和熟练的操作技巧,用了两个星期的时间,在 PDP—10 型计算机上作出了阿尔塔处理器的模拟器,比尔·盖茨则为该机的 BASIC 语言编制了设计要领。

对计算机稍有涉猎的人都知道,内存空间的大小是计算机的一个重要指标。我们今天所使用的个人计算机,其内存一直在逐年扩大,现在普遍都安装 2M、4M、8M,甚至 16M、32M 字节的内存,而当时的阿尔塔8800 仅有 4K 字节内存。如果我们知道要 1000K 才相当于 1M,那么,4K 字节的内存是个多大的概念,就可想而知了。比尔·盖茨要使他编制的BASIC 语言在 4K 字节内存的计算机上使用,显然是一件难度很大的工作。他得克服一系列技术方面的困难,还要同时间竞争,因为一定还有不少别的公司也在为这种计算机开发 BA-SIC 语言。不过,比尔·盖茨在软件开发方面已不是初出茅庐的新手,他积累了相当丰富的编码经验, 因此做起这一项创造性的工作来仍是信心百倍。

比尔·盖茨后来回忆说:“为阿尔塔编写 BASIC 真是令人精疲力竭。当我思考的时候,我时常前后摇晃或踱步,因为这样有助于我把精力集中在一个想法上,排除干扰。1975 年冬天,我在宿舍里做了大量的摇晃和踱步。我和保罗·艾伦睡得很少,可谓夜以继日。我常常睡在书桌旁或地板上。好些日子既不吃东西也不会见任何人。”

他们废寝忘食地干了两个月,BASIC 语言的编写已经基本完成。他们再次给罗伯茨打电话,说他们已经成功地在阿尔塔上应用了 BASIC 语言, 而实际上他们直到那时,别说没有见过阿尔塔 8800 计算机,就连英特尔

公司的 8080 微处理器也不曾一见。

这一次,罗伯茨仍然半信半疑,要他们亲自到阿尔伯克基表演他们的程序。

他们答应了,但是时间是在三个星期之后。

二月底的一天,约定去阿尔伯克基会见罗伯茨的日子来到了。他们决定让保罗·艾伦前往微型仪器遥测系统公司,比尔·盖茨则在哈佛等他的消息。前一天晚上,保罗·艾伦回家睡觉,以便养精蓄锐,对付谈判——他们实在太辛苦了。比尔·盖茨为了万无一失,又熬了个通宵, 把程序仔细检查了一遍。天刚一亮,保罗·艾伦就拿上程序,搭出租车去了机场,坐第一个航班去波士顿。他对会谈不抱多大希望,因为他不知道他们开发的软件究竟有没有毛病。当飞机快要到达波士顿时,他突然想起忘了为阿尔塔 8800 编一节进入 BASIC 语言的代码,只好在飞机上立即补做这个工作。

来机场迎接他的是个 40 开外的彪形大汉,开的是一辆卡车。他就是艾德·罗伯茨。汽车直接开到公司的开发实验室。保罗·艾伦原以为那一定是市区里一座惹人注目的豪华大楼,结果却令人大感意外——那不过是一间小小的店铺,而且蜷缩在洗衣店和按摩院之间。使保罗·艾伦更感意外和麻烦的是罗伯茨竟把他当做大亨,带他去了一家豪华旅馆。保罗·艾伦带的钱根本不够支付旅馆费,只好向罗伯茨告借。当晚,保罗给比尔打电话,说此公司并不如他们想象那样气派,不仅汽车破旧, 花钱也很不大方,看来经济实力并不怎样。他担心他们为这个类似作坊的公司开发的软件有可能明珠暗投。

不过保罗·艾伦更关心的还是他的 BASIC 语言软件是否能在计算机上通过试验。他怀着忐忑不安的心情等到第二天,这是一个决定他和比尔·盖茨未来命运的日子。当他走进公司开发实验室的时候,才第一次有幸一睹阿尔塔计算机的风采。

他把打上程序孔的纸条装进纸条阅读器,然后等待计算机的反应。这短短的几分钟对保罗·艾伦来说是那样的漫长。他完全不知道这台素昧平生的计算机是否会接受他编写的语言。如果计算机毫无动作,就表明他和比尔·盖茨将功亏一篑,今后的一系列宏图大略都将化为一纸空谈。他正在浮想联翩之际,阿尔塔突然开始对软件发生反应,电动打字机打出了“准备就绪”的字样,说明他们编写的 BASIC 语言已经被计算机接受了!接着,保罗·艾伦试验性地输入一个 2+2 的指令,阿尔塔马

上给出一个 4 的答案。于是保罗·艾伦知道,他们编写的程序至少有 70

%没有问题了。

到这时,他才如释重负地舒了口气,准备马上试验比尔·盖茨用 BASIC 语言编制的第一套软件,那是模拟宇宙飞船在燃料用完之前在月球上着陆。阿尔塔 8800 也是首次作实用性运行。

结果表明模拟非常成功,比尔的 BASIC 语言在机器上工作得相当出色,令罗伯茨惊叹不已。保罗·艾伦后来回忆那个时刻说:“这家公司能够研制出计算机,却不能使它运转起来。而我的惊讶则是这台机器竟能听命于我的指令。”罗伯茨也感慨地说:“我们的机器终于成了有用的机器,我兴奋得几乎晕了过去。那真是一个令人难以忘怀的时刻。这两个小伙子从来没有见过阿尔塔,却做出了如此出人意料的工作。”

他决定按比尔·盖茨他们的条件订购软件。

保罗·艾伦欣喜若狂,立刻给比尔·盖茨打电话,告诉他实验大获成功。比尔·盖茨一听到这个消息,马上就意识到他编写的 BASIC 语言不仅可以使阿尔塔腾飞,而且对于整个计算机行业也具有革命性的意义。它意味着微型计算机从此将在极为广大的领域获得应用。

后来的事实证明,这的确是一个意义重大的历史性事件。它宣告了一个计算机时代的来临。由于比尔·盖茨和保罗·艾伦研制的软件使计算机进入了一个全新的实用领域,计算机就得到了迅速而普遍的推广, 在一个很短的时间内由美国西北部蔓延到了全美国。人们争相购买这种计算机。不久,这股计算机热潮就席卷了全世界。

而这两个推动计算机革命的人物比尔·盖茨和保罗·艾伦,当时年龄分别不到 20 岁和 22 岁。

比尔·盖茨后来说:“我们同它(微型仪器遥测系统公司)一起干, 是因为它一直是把廉价的个人计算机出售给大众的第一家计算机公司。到 1977 年,苹果、RadioShackCommodore 等公司也加入了这个行列。我们为大多数的早期个人计算机提供 BASIC 语言。那个时候,这还是一种极为重要的软件成分,因为用户们用 BASIC 语言来编写他们自己的应用程序,而不是购买包装好的应用程序。”

比尔·盖茨在激动兴奋之余,决心对这种语言再作改进,然后才让罗伯茨推向市场。他在哈佛大学的中心计算机上工作,每天要干 20 小时。他的法律教授对这种行为大惑不解。校方发现比尔·盖茨和保罗·艾伦长期利用学校的计算机开发商用软件,也表示不满,因为这有违学校一直推崇的精神,虽然对此一般也并没有明确的规定。学校对比尔进行严厉批评,还以开除相威胁。但是比尔·盖茨提出了一个难以辩驳的理由, 使校方无话可说。他声言:“学校并没有制订具体的规则,说明应当如何使用学校的计算机。况且,既然教授可以使用学校图书馆著书立说,

从而获得稿费和版权,学生又为什么不能利用学校的计算机搞商业性研究呢?”学校对此无言以答,只好作出一个正式规定:学生利用学校的计算机研制出商品,学校有权分享利润。

保罗·艾伦接受了罗伯茨的邀请,于 1975 年 5 月到他的公司任软件部经理,专门负责开发软件。其实他不过是个光杆司令——所谓软件部也就是他一个人而已。这个公司现在已经名扬四海,它像一块强大的磁铁,吸引着无数计算机爱好者。这些人做梦都在想着拥有一台个人计算机。罗伯茨把这种庞然大物缩小成了可以放进书房的玩意儿,就使 70 年代的美国人产生了一种新的激动。人人都希望率先掌握这种有可能领导新潮流的技术。罗伯茨的公司马上生意兴隆,他们全力以赴地忙着生产阿尔塔计算机。

比尔·盖茨仍然回到哈佛大学念书打牌,做他并无多大兴趣的事情。保罗动员比尔假期中也到这家公司继续改进 BA-SIC 语言。

比尔·盖茨研制的 BASIC 语言经过无数次改进,已经达到了在当时看来相当可靠的水平:使用者一旦出错,它就会产生提示,告诉错误出在什么地方;另外,它不会像当时的许多软件一样,因为自身有错而导致死机。总之,比尔·盖茨的 BA-SIC 语言从那时起曾独领风骚达 6 年之久。

比尔和保罗频频通过电话商讨他们的 BASIC 语言问题。他们预测到一个软件市场将随阿尔塔计算机的诞生而诞生。他们坚信他们可以靠出售他们的软件赚一笔大钱。他们现在要做的事情就是开办一家自己的软件公司。为此,比尔·盖茨就面临着一个严峻的选择:要么不办公司而继续在哈佛念书,要么办公司而告别哈佛。

比尔·盖茨再三思索,终于作出一个艰难的决定:离开哈佛,立即投身计算机事业。

他把这个决定告诉了父母。他的母亲玛丽·盖茨是华盛顿州立大学评议会会员,在教育界享有盛名,当然反对这个决定,认为比尔·盖茨竟然敢于无视哈佛的教育,置这所名牌大学的文凭于不顾,简直不可思议。他的父亲自然也因为此举有悖于自己的初衷——让儿子今后进入法律界——而大为不满。但是俩人都对什么计算机啦软件啦一类玩艺知之甚少,感到要说服儿子殊非易事。他们找到了一位在计算机产业和商业方面都十分在行的德高望众者斯托姆,寄希望于他来说服比尔·盖茨改变决定。

斯托姆一向以善于仲裁和调解著称。他借一个机会让比尔·盖茨在假期去山里的旅游地雷尼尔俱乐部参加宴会——那地方向来名人荟萃。结果是比尔·盖茨反倒向斯托姆滔滔不绝地作了一番演讲,详细说明了他现在所作的事情和今后的打算。斯托姆本人也是搞电子技术而由一文不名发展到拥有千万资产的。他发现比尔·盖茨将走的道路酷似自己当年已经经历过的道路。他对艰苦创业的历程深有了解,而且对比尔这样有胆识有作为的青年打心眼里佩服,也完全懂得一个以计算机的普及为标志的新纪元正在开始。他明白了比尔·盖茨和保罗·艾伦要做的事情具有的开拓意义,不仅没有劝他打消退学的念头,反而鼓励他好好干下去。

为此,玛丽有好多年对他颇有芥蒂。

但父母已经别无他法,只好由着儿子去干。

二年级念完后,比尔·盖茨就毅然离开哈佛,去了新墨西哥州的阿尔伯克基,同保罗·艾伦一起专心搞起软件开发来。