软件编程传奇(1)Basic:微软帝国的奠基石

1974年底,保罗·艾伦和比尔·盖茨在哈佛大学的必胜客一边喝咖啡,一边畅想未来:“如果一切顺利,你觉得我们的公司能办多大?”,比尔回答到“我想会有35名程序员的规模吧!”。保罗哇了一声:“那可真是雄心壮志啊!”。

他们不知道,他们即将创立的这家叫做微软的公司未来会成为美国乃至世界的软件帝国,市值最高达到2.2万亿美元,如果类比为国家的GDP,可超过意大利,位列全球第七。其员工人数超过22万人,是创始人保罗和比尔预期的几千倍。

而这一切,都开始于一个叫做Basic的程序。

需求

保罗和比尔是西雅图湖畔中学的同学,保罗比比尔要大几岁,也不同级,但是他们都喜欢编程,经常在学校的计算机房相遇,于是就慢慢成了朋友。比尔的家庭商业气氛比较浓郁,家里订阅《财富》杂志,比尔经常拿来和保罗一起看,然后憧憬着将来一起创立自己的公司。

事实上,他们不只是憧憬,两个人中学的时候就结伴去计算机公司实习软件编程的工作,并经历实习公司倒闭的挫折。后来保罗上了华盛顿大学,而比尔则考入哈佛大学,但是他们还是会经常在一起,接一些类似软件外包的商业合同。他们还试图制造一款专门用来做数据分析的计算机硬件,最后也没有成功。

到了1974年,保罗行将大学毕业,他和比尔的编程技术越来越进步了,但是他们的商业梦想却越来越模糊了。

也就在这个时候,事情出现了转机:英特尔发布了面向个人用户的8080微处理器芯片。8080是一颗8位处理器,时钟频率2MHz,在当时一众玩具似的微处理芯片中,其计算能力堪称超群绝伦。保罗敏锐地感觉到一个巨大的机会出现了,因为这颗芯片的计算能力可以运行高级编程语言,也就是说,普通人能够拥有的计算机也可以运行一些真正的程序了,个人计算机市场将可能迎来爆发式增长。

那么在8080上运行什么样的高级编程语言呢?保罗和比尔不约而同想到了Basic语言,这是一个面向编程初学者的语言,可以交互式编程,每行代码都可以得到即时计算,便于初学者使用;同时它还是一个解释性语言,不需要消耗巨大的内存进行编译和链接生成可执行代码,因为当时个人计算机内存只有几K,负担不起这样的消耗。

虽然8080芯片已经发布了,但是支持8080芯片的个人计算机却还不知道在哪里,于是两人焦急地等待,不时到哈佛大学附近的书店翻翻最新的科学杂志,看看有什么新消息。

终于在12月的一天,《大众电子学》最新一期封面写着“世界首台微型计算机挑战商业计算机”,他们激动地猜想,这一定是一台装有8080芯片的微型计算机。两人迫不及待地翻开杂志,里面果然写到:牵牛星8800使用有史以来最强大的微处理器8080。

他们立刻联系生产这台计算机的MITS公司,打电话的是比尔·盖茨,但是为了使自己显得更加成熟可靠,他谎称自己是保罗·艾伦。比尔跟MITS公司的创始人爱德华·罗伯特说,自己为8080芯片开发了一个Basic语言,可以安装在牵牛星8800上,使牵牛星真正具有计算机的使用价值。爱德华回复说:如果你一个月内把程序拿过来,我就跟你们签合同。

放下电话,两个人面面相觑:虽然他们得到了机会,但是他们一行代码都没有啊。

开发

那一年,保罗21岁,比尔19岁。多年以后,保罗和比尔回忆当年给爱德华打电话的那个下午,都觉得如果当时不是那么年轻,那么热血冲动,他们就不会在毫无把握的情况下接受这样一个高难度的挑战。因为最基本的,他们连英特尔8080芯片都没有,更没有牵牛星8800微型计算机了,他们要为一个不存在的计算机开发软件。

所以他们首先要为8080芯片开发一个模拟器,这个模拟器可以执行8080处理器指令,模拟在8080上运行Basic程序。两个人分工,保罗开发模拟器程序,比尔开发Basic解释器程序。

他们在哈佛大学的机房用比尔·盖茨的账号进行开发,由于只有一个账号,所以两个人轮流倒班使用计算机。一个人在纸上写代码的时候,另一个人就在计算机上调试程序。有时候保罗来用比尔的计算机终端的时候,发现比尔弯着身体,头触在终端显示器上睡着了,像一只烤熟了的虾。而保罗则抱着一本8080指令手册,将每条指令翻译成哈佛大学计算机专用的指令。

在机房调试Basic程序的比尔·盖茨和保罗·艾伦

为了节约内存空间,他们需要不断优化Basic解释器代码,一段20行的代码,优化到9行,再优化到5行。因为他们的解释器程序使用的内存越少,用户越有更多的空间运行他们自己的Basic程序。那个时候,每根内存条只有1KB大小,而售价却高达200美元,等于程序的每行代码都运行在美钞上。

当时哈佛大学的计算机是和美国国防部共用的分时操作系统,在保罗和比尔没日没夜编程的那段时间,国防部监控到系统使用异常频繁,进而怀疑有人企图利用这台计算机窃取国防部的机密。所以一天晚上,校园警卫把他们叫到办公室,仔细询问了他们最近在做什么,了解到他们没有什么危害后才放他们离开。但是由于他们高强度使用,哈佛大学需要和国防部分摊的系统使用费用大幅增加,所以比尔·盖茨又被叫到学校行政委员会接受处分。

两个月后,他们的程序终于完成了,这个Basic解释器3200个字节,200行代码,非常短小,但是功能和速度却无与伦比。几十年以后,比尔和保罗谈起这个程序,依然称之为“我们最好的程序”。

虽然比约定的时间晚了一个月,但这是MITS收到的唯一的可以运行在他们牵牛星8800上的Basic解释器,也是唯一能够运行在这台计算机上的软件。所以,爱德华·罗伯特还是邀请保罗带着程序去他们公司进行测试,毕竟不能卖一台没有任何软件的计算机给用户不是。

测试

测试由保罗前去完成,因为比尔在电话里和爱德华沟通的时候用的就是保罗的名字。在出发的前一晚,比尔又担心起来:Basic解释器没有问题,但是万一8080模拟器有问题怎么办?于是比尔花了一个通宵拿着8080手册逐行验证模拟器的宏指令。第二天,比尔两眼通红,拿着打印有Basic解释器的程序纸带交给准备要登机的保罗说:模拟器也没有问题。

但是飞机起飞以后,保罗忽然又想起,他们还缺少一段将Basic解释器引导加载到内存中的程序,没有加载程序,Basic解释器就无法运行。如果还在哈佛大学的机房里,他可以从容编写这段程序并用模拟器进行调试,但是现在他在飞机上,不但没有模拟器,没有计算机,甚至连8080指令手册都没有。

保罗不得不找了一张纸,凭借记忆里的8080指令开始手写引导程序。不能用汇编符号,也没有代码注释,只能用三字节的二进制机器指令编写程序。最终这段程序使用了21个指令,代码写的不是很好,但是已经没有时间优化了,因为飞机已经落地了。

到了MITS公司,爱德华将保罗带到一个天蓝色的金属盒子前面。对于当时的爱德华和保罗而言,他们也许认为这只是一次普通的相会,事实上,这将是一次影响计算机发展历程的相逢。

牵牛星8800计算机

他们面前的这台牵牛星8800将成为人类历史上第一台成功在市场上销售的个人计算机,爱德华·罗伯特将因此被称为“个人计算机之父”并载入史册。保罗手里拿的纸带上是人类第一个专门为个人计算机开发的软件,这个软件的开发者比尔·盖茨十几年后将成为世界首富的代名词。信息时代的大门这一刻被扣响,而他们当时都并不知道。

这台将来同样被载入史册、触发乔布斯灵感建立苹果帝国的牵牛星8800看起来平平无奇,它没有键盘、没有显示器。坚硬的机箱里面是用数据总线连接起来的8080微处理器和7根1KB的内存条(这个数据总线后来成为个人计算机总线标准:IEEE 696 总线标准),机箱正面是几十个拨动开关和红色发光二极管。指令通过拨动开关,将开关置于0或1的位置输入计算机,而输出就是上面的二极管。

为了方便保罗调试程序,这台计算机特别配置了纸带输入机和电传打字机:纸带机用来输入程序,打字机用来打印输出。保罗一个字节一个字节地将加载程序通过拨动开关输入到计算机,然后按下运行键。红灯闪烁,看起来好像在运行,保罗又打开纸带读数器,计算机以每秒10个字符的速度读取纸带,7分钟以后,纸带读完,保罗再一次按下运行键。

电传打字机咔咔作响,打印出一行字母:内存大小?

爱德华吃了一惊,这是他第一次看到牵牛星执行系统自检以外的操作,而保罗更是吃惊,他没想到第一次就顺利运行。大家都呆住了,张口结舌看着机器,过来好一会,保罗输入7根内存条的大小:7168,牵牛星打印:OK。

现在看起来Basic解释器是正常运行的,那么能不能真的执行Basic程序呢?保罗输入

PRINT 2 + 2

机器立刻做出回应:4

爱德华惊叫起来:“天哪,它打印的是4”。他无法相信,两个没有见过牵牛星计算机的人真的写出了一个可以在牵牛星上运行的程序。而保罗比爱德华还要吃惊:他同样不敢相信他们的程序第一次运行就如此完美。

那一刻,紧张了两个月的保罗深深地、深深地松了一口气。

发布

随后,保罗又输入一个叫做“登月计划”的Basic游戏程序,程序只有35行代码,爱德华上去玩了一下,几次尝试后,飞船成功登陆月球。爱德华毫不犹豫地对保罗说:“我想让你签一个许可协议,让Basic解释器和牵牛星一起卖出去”。

保罗开心地给比尔打电话,比尔也非常激动,他们的商业梦想第一次如此清晰。

可运行Basic程序的牵牛星一上市,就受到热烈追捧,订单雪片似的飞到MITS公司。为了更好地经营这个软件,他们决定成立一家公司,软件是在微处理器上获得成功的,公司名字就叫微软。保罗和比尔需要自己制作程序纸带,还要开发4K和8K版本的Basic程序,每天拼命工作,脸色苍白,以至于餐馆的服务员问他们是不是在飙车,他们回答:不,我们在编程。

这一年,牵牛星的销售额突破100万美元,牵牛星每台售价400美元,Basic每份售价75美元。保罗和比尔预期会收到十几万的分成收入,但是年底的时候一看,收入只有1万多美元。没有Basic的牵牛星几乎毫无用处,为什么Basic的销售如此惨淡?

原来很多人自己复制了Basic程序纸带进行免费分发,甚至有专门的组织为计算机爱好者安排这样的免费交换软件的活动。愤怒的比尔·盖茨发表了《致计算机爱好者的一封公开信》,信中说:你们偷了我们的软件,盗版软件的行为扼杀了好软件的生机,谁愿意白费力气做专业的工作。

比尔的公开信引起了激烈讨论,虽然争议不断,但是软件像硬件一样有内在价值这个观点开始被大众接受,并推动相关立法出现。良好的版权环境给微软带来高速发展的机遇,虽然30年后,免费的开源软件再次成为行业主流,微软也开始拥抱开源,但是这30年的黄金时代已然使微软成长为一个软件的帝国。

升级

保罗和比尔只给了MITS销售Basic的许可,而不是将Basic卖给MITS。在牵牛星上获得成功后,微软的名字逐渐被人们所熟知,许多其他企业也希望获得Basic程序的安装许可。公司雇佣了更多的程序员,开发的产品也不局限于Basic,还推出了其他编程语言。比尔·盖茨正式从哈佛大学退学,他们准备大干一场。

又过了两年,苹果电脑诞生,稍晚一些时候英特尔推出8086微处理器,个人计算机市场开始爆发式增长,微软面向个人计算机开发的软件大受欢迎。但是真正将微软带入辉煌时代的是IBM。

IBM是当时世界上最大的商业计算机制造商,到了1980年,面对如火如荼的个人计算机市场,IBM再也坐不住了,他们决定也制造个人计算机。为了给IBM 个人计算机(即后来成为个人计算机事实标准的IBM PC)定制软件,IBM找到了微软,购买了微软全部的产品,并提出要开发一个可以运行在个人计算机上的操作系统。

微软尝试了几种方案,最后决定购买一个叫做DOS的操作系统并对它进行改造,以适应8086芯片。一年后安装有微软DOS(即MS-DOS)的IBM PC发布并横扫市场。几年之内,除了苹果电脑,任何没有安装MS-DOS的个人计算机都被淘汰出局,微软已然成为个人计算机软件的霸主。

但是也就在这个,保罗和比尔的矛盾开始激化起来。保罗的父亲是图书管理员,比尔的父亲是律师母亲是银行家,可能是家庭背景的影响,保罗更专注技术,而比尔更喜欢商业。保罗希望能够言出必践,而比尔则认为必须要白纸黑字。

1983年保罗因病离开微软,但仍持有微软30%的股份,2013年保罗在全球富豪榜排名53,资产150亿美元,拥有的八爪鱼号曾经是世界上最豪华的私人游艇。

比尔则继续和盗版软件、开源软件斗争,并带领微软成为世界上市值最高的公司,也使自己很长一段时间都是世界首富。2008年比尔从微软退休,留下的嘱托是拥抱开源。

2018年保罗·艾伦因病去世。比尔·盖茨则将余生投入慈善事业。

【仅供学习,请勿转载】

猜你喜欢

转载自blog.csdn.net/xiaoyao961/article/details/132721887