232. 微软的BASIC解释器

突然发现快两周没有更新电台了,我最近业余时间在写一本书,我想写一本考证编程历史的书,以Java为主题,里面涉及大量的论文和白皮书,我觉得这样会比较有趣,最近和出版社签了约稿合同。这也是我录视频的一部分,我希望录一个可以运行的项目,其中要用到Java编程,所以,我觉得写一本书会比较严谨一点。里面涉及了数十篇论文,其实以前我都看过,但是写书毕竟不是做电台,我想考证的严谨一点,大部分论文都是业内专家写的,有几位获得图灵奖的人,还有Java之父1995写的白皮书的技术手册。从历史中学习编程,然后考证一下为什么Java会变成这个样子。所以,这也是我录视频计划中的一部分。当然了,牛吹起来比较简单,做起来可能不那么容易,所以,先稍微吹一下吧。

自从做电台以来,写公众号以来,也可能是因为年龄的关系,就有了一些想法,我想实现其中的一些。引用两三句名人名言吧,是古希腊的一个哲学家说的,这个哲学家叫“爱比克泰德”。其中一句叫“假如你想做事,就得养成做事的习惯;假如你不想做事,就别去沾边。”,还有一句叫“我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。”有人肯定会留言说这是鸡汤,人生没有什么意义,战略性后躺就行了。我相信这个世界上99.9999%的人不知道爱比克泰德是谁,其实历史上也没太搞清楚这个人的具体事迹,他真实的名字也没有,只大概知道他是个奴隶的孩子,小时候被人打断了腿,然后一生残疾。他的名字“爱比克泰德”在希腊文中是“养成习惯”的意思。他养成了学习的习惯,还学会了写字,最后当了老师,留下了两本书。

我们每个人登上的都不是我们所选择的舞台,至少我们出生的时候,没人问我们要不要出生吧?至于演出的剧本,虽然每个现代人都会说我的舞台我做主,实际上,90%的情况下,剧本都是别人给的。如果让我选择舞台和剧本,我会选择当个官二代,富二代什么的,而不是现在这个样子。但是,既然登上舞台了,我还是把剧本演好,不能战略性后躺。在下班后,给银行还完一天的贷款,给政府纳完一天的税。我也把书写好,多录点视频,多录几期电台,再有时间,再把我要写的小说完成,记录一下这个时代。登上舞台了,就折腾一下再说吧。

现在再来讲别人的故事,自己的故事太烂了,只能讲别人的故事,接上一期,讲微软的故事。

1974年秋天,比尔•盖茨去哈佛大学读书,他的父母一直想让他读法律。他太聪明了,他在哈佛大学读心理学,物理学什么的,然后在业余时间玩扑克,对他来说,课程太简单,没什么意思。他的朋友保罗•艾伦在哈佛广场看到了一本杂志,就是1975年1月的《大众电子学》杂志,然后两个人要为这个东西做一个BASIC解释器。他们去了一家电器店,买了一本8080的说明书,就开始做起了BASIC解释器。这个东西和比尔•盖茨的智商相匹配,甚至,他玩扑克的好友三缺一的时候喊他,他也没去,就在那里写软件。保罗•艾伦讲,比尔•盖茨太过投入了,晚上不睡觉,他看到比尔•盖茨坐在键盘前睡了,然后想劝他去床上睡,结果盖茨马上就开始继续编程。

两个人都在哈佛,艾伦不是哈佛大学的学生,只是在那里。我再花点时间介绍一下保罗•艾伦吧。他现在已经去世了,2018年他去世的,享年65岁。他得了癌症。实际上,他在1982年的时候就得了一次癌症,后来复发了两次。他得病的时候29岁,所以当大家讲微软的时候,都只讲比尔•盖茨,很少讲他,他得病后淡出微软了。

保罗•艾伦出生于1953年1月21日,出生在西雅图。再说点题外话,我对西雅图好感度爆棚,主要是两件事,当我还很年轻的时候,也就13-14岁的时候,有录像厅,那时候看了一部电影叫《西雅图夜未眠》,主演是最近肺炎阳性的汤姆•汉克斯,导演是诺拉•艾芙伦。可能是我们那时候地下录像厅太多了,我看了太多美国电影,所以,对美国没有彻骨的仇恨。还有一件事情是,我大学宿舍有个舍友,我们理科,没什么妹子,他一直到大学毕业保持处男之身,没有妹子,有无穷的精力宣泄在数学课本上,我也没妹子,宣泄在心心相印上,他是我们系成绩最好的人,他申请了华盛顿大学,我是我们系成绩最差的人,现在在开出租车。华盛顿大学可能有个西雅图分校。我也搞不清华盛顿州和华盛顿什么关系。他走的时候,大家开玩笑么,我就讲了这个电影,我觉得西雅图是最浪漫的城市,结果他去西雅图的飞机上,就和一个同时去西雅图的浙江妹子恋爱了,他还打电话给我讲,搞得我有点嫉妒。现在他在西雅图定居了,和当时那个浙江妹子结婚,还生了三个小孩子,现在波音公司写软件。最近波音摔了好几架飞机,我怀疑是不是他写的代码。总之,如果你没找到对象,就一定要努力去西雅图,肯定有好事发生。真希望我有生之年能去西雅图,开个连锁店什么的。

再说这个西雅图的保罗•艾伦,他的父亲是华盛顿州立大学的馆长,他人生的剧本相比来说还是很好的,他父亲那个图书馆里有电脑,他从小就玩电脑。后来保罗给华盛顿州立大学捐了一个大楼,名字是纪念他爸爸的。保罗比盖茨大两岁,后来保罗去的是华盛顿大学。大学里太无聊了,他上了两年就辍学了。比尔•盖茨去哈佛,他去的是一个叫霍尼韦尔,两人都在波士顿。

后来他的剧本有点小问题,29岁的时候,得病了。得了癌症后,对工作肯定是没有比尔•盖茨那么努力工作了。于是比尔•盖茨心理也不是很平衡了,他就想侵吞保罗的股票,下面这个故事来自保罗的回忆录,他的回忆录有中文版,大家可以去买一本二手书:《我用微软改变世界:微软联合创始人保罗•艾伦回忆录》。在这本书里,他讲的,1982年12月,一天晚上,我听到比尔•盖茨和史蒂夫•鲍尔默在比尔的办公室里激烈地说话,就停下来听听。然后听到的内容是,他们正在抱怨我最近缺乏生产力,并想通过向自己和其他股东发行股票,来稀释保罗在的微软股权。然后很崩溃,后来还是多分给了比尔•盖茨不少股票,原来是5:5,后来是好像是64:34,剩下的是其他人的。

然后他30岁就从微软离开了,比尔•盖茨还试图用5美元一股买他的股票,但是他拒绝了。后来的故事也很精彩,如果我讲这个电台没什么素材了,可能会讲他的故事。他的剧本很好,很精彩。

再来说当年吧,两人就经常在谈论编程的事情,有一次在食堂吃饭的时候,两个家伙又在讨论浮点程序的事情,结果被一个也在吃饭的人听到了。那个家伙一听就兴奋了,赶紧过来加入了讨论,他说他也喜欢编程,会搞这个浮点计算,这个人是蒙特·大卫杜夫,微软的第三个人。

他们三个人还有个巨大的问题,虽然他们决定要给Altair写软件,但是这三个人都没有见过这台电脑真实的样子,只见过图片。他们用的是哈佛大学的大型机来开发软件,保罗先是写了一个模拟器来模拟Altair,然后他们再在这个模拟器上写BASIC。我觉得水平还是比较高的,当有问题的时候,他们就打电话给Altair的罗伯茨,问一下真实的电脑是怎么做的。这让罗伯茨有点惊讶,感觉这几个哈佛大学的孩子是真有点技术,而不是忽悠。

这个BASIC软件写了六周,他们三个凑了一点钱,让保罗•艾伦一个人坐飞机去罗伯茨那边演示。在飞机上,保罗意识到一个问题,这个BASIC还缺少引导器,于是在飞机上的餐巾纸上写加载的代码,当飞机降落的时候,他已经用8080的汇编语言把加载程序写好了,但是不确定能不能用。

当飞机降落的时候,罗伯茨开来了一个皮卡,这让艾伦有点意外,当把他拉到罗伯茨的公司以后,更意外了,因为公司实在不像是个正经公司的样子。但是看到电脑以后,艾伦还是放心了。有一台7k内存的电脑,这是当时世界上内存最大的个人电脑。他拿出那些写满BASIC的纸带,花了5分钟时间把程序加载上去。然后,通过那些按键输入2+2,最后在指示灯上显示结果4。罗伯茨对这个小孩大加赞赏。马上邀请他在MITS公司当技术总监。比尔盖茨也觉得这工作肯定比上学爽,于是他也从哈佛大学跑来了此地。

此后,他们三人继续在这个软件上花费大量的时间改进,给BASIC写了大量的文档,也支持了更多的特征,比如支持浮点,支持ROM等等。他们写的软件得到了Altair用户的称赞,但是仍然有两个问题没有解决,这两个问题是,这些人都喜欢用BASIC,但是就是不想付钱,白嫖,都在用盗版。还有一个问题是,MITS公司好像也认为软件不值钱,毕竟没什么“硬件”投入,就是花了些时间。我当程序员,对此有体会,有人想做个淘宝那样的软件,就会来找我。或者想给QQ充点Q币,也来找我。

更让盖茨感到震惊的是,有人公开盗版他写的软件。在一次Homebrew俱乐部聚会的时候,艾伦去做演示,拿去了一堆纸带,结果那卷Altair BASIC的纸带演示结束后被人拿走了。本来艾伦想每一份copy卖10美元。结果到下一次的时候,150份copy已经被人免费发放了。比尔•盖茨写了一封公开信,对这种行为进行驳斥。这封信非常的出名,是在1976年2月3日发给爱好者的公开信。

这封公开信的原文我放在公众号里,就不翻译了,我现在觉得还是比较合理的,这封信说的内容也不算太离谱,当然了,对开源有特别爱好的人,可能觉得这封信是微软邪恶的标志之一。这些人认为硬件要钱就算了,你写个软件还要钱,太抠门了。看来这是一个普遍的认识。现在我就不再讨论软件要不要付钱了,比较容易引起争论,比如Linux要不要付钱?实际上,Linux是免费的,这是对个人用户,你要是企业用户,收服务费还是很贵的。当然了,对企业用户,人家肯定是觉得值得的,否则RedHat也不可能赚钱。

那你说有没有免费的东西呢?当然有了,但是不多,特别重要的东西都是免费的,比如空气,比如阳光,比如为人民服务,这些都是免费的,不用是不行的。

是不是只有微软一家呢?当然不是了,每家公司都有竞争对手,微软当然不例外。不管是BASIC还是操作系统,微软都有强劲的竞争对手,下一期就讲一下他们的竞争对手有哪些。

0 0 投票数
文章评分
订阅评论
提醒

0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部