163. Microsoft Office之开发Word的故事(上)

这个世界上用的最广泛的应用软件里面,肯定有Microsoft出的三个软件,一个是word,一个excel,还有一个是powerpoint。与之对应的,苹果这个平台上有相对应的三个软件,分别是写字的pages,做表格的numbers,还有做幻灯片的keynote。我录的视频就是用的苹果平台的keynote。但是由于微软windows这个操作系统压倒性的优势,我觉得用微软办公三件套的用户会远远多于苹果的。据我所知,只要你上大学,不是类似数学系这种公式要求非常多的系,写论文得用latex,其它的专业写毕业论文基本上都用word。

我就花几期的时间讲一下微软公司出这三套软件的故事,如果大家是程序员的话,可能知道有一个著名的变量命名法则叫匈牙利命名法,现在这个命名法则已经被广大的自以为是的菜鸟程序员否决了,因为这个命名法则要考虑很多方面,这个匈牙利命名法则是以小写的首字母开始的,并且这个首字母有自己的意义,我举个例子,以小写字母c(count)开始的,就是一个计数器,像cd的意义是count of bytes,代表字节的个数。以小写字母d(different)开头的,就是两个变量之间的差,比如dx代表宽度,dy代表高度。这样命名实际上非常清晰,尤其是在C语言中更是如此,因为c语言的的编译器不提供类型识别,怎么乱来都可以。但是如果用匈牙利命名法则的话,如果我们看到一个变量以cd开头,心里就会知道这是字节数,然后以dy开头,就会知道这是高度,如果某个以cd开头的变量被赋值给dy开头的变量,我们就知道,这可能是个bug,虽然c语言的编辑器根本检测不出来。

就像我有一个变量是身高,还有个一变量是体重,这两个变量都是浮点数,如果我把身高赋值给体重,像我173厘米,体重173斤,在c语言看来,这样赋值没什么问题,但是实际生活中,我们知道这是不行的,只是恰好体重身高一样了。所以身高这个变量可以用小写的h来开头,体重这个变量可以用小写的w来开头,这样对自己写软件也有很大的好处,尤其是编译器根本不提供类型识别的时候,比如c语言的编译器,要是浮点数就可以。

这个命名方法已经消失了,因为大量的菜鸟程序员觉得用x,y,i,a,b这样就挺好的,为啥要搞得这么复杂呢?搞出这个变量命名法则的人叫西蒙尼,是这个世界上可以排在前列的伟大的程序员之一,他最拿得出手的产品是我们每个人都用过的microsoft word这个东西。他是匈牙利人,可能是因为这个原因,他的命名法则就被称为匈牙利命名。这个人主导了Microsoft Office的开发,其中这三件套都有他的功劳,最主要的当然是word和excel。还有一个powerpoint不是他做的,但是也是他建议收购的。powerpoint是两个在apple公司的员工出来创业搞的,因为这两个人在apple过得不好,就出来创业,先是搞了个叫FileMaker的东西,不好,后来转型做powerpoint,而且只有mac版本,但是微软意识到了这个价值,花了1400万美元把这两个人还有这个产品买到了公司,然后组合了一个office,其中包括word,excel还有powerpint,一份卖1000美元,如果单买的话,每个要500美元,如果一下子买三份的话,能节省500美元。据说,office这个软件,安装了30亿,包括大量的盗版软件。

所以,我就从word的创始人开始讲起,看看要讲几期,这个人是个传奇人物,虽然不为太多人所知。

和很多伟大的科学家一样,这个伟大的程序员也来自匈牙利的布达佩斯,像冯诺伊曼,冯卡门,维格纳。但是,和这几个科学家不同的是,那几个科学家出生的时候是20世纪初期,当时的匈牙利社会风气还可以,想出国还有点门路,但是到了这个西蒙尼时期,匈牙利已经在苏联的控制之下了,在共产主义国家过日子,能有口饭吃就不错了。而且还要天天被学校洗脑热爱自己的国家。后来他回忆说,他学了一篇课文,是一个共产主义者写的,讲的是伟大的革命导师列宁的故事,讲的是一个老太太,冬天,家里的柴火用完了,因为当时苏联是计划经济,木头也是按计划供给。可想而知,哪有木头让这么个给国家添乱的老太太用啊。但是,这个老太太竟然给伟大的革命导师列宁写信了。列宁看了以后,非常的感动,可能流下了鳄鱼的眼泪,从此,这个老太太就有了足够的木头,感受到了共产主义的温暖。可能学完这个课文以后,还得提炼中心思想啥的。

如果是我学这篇课文的话,可能就会觉得共产主义导师就是导师,人民的公仆。但是这个西蒙尼不一样,他觉得,我操,这么垃圾的地方,一个劳累了一生的老人是不是被冻死,竟然要靠伟大领袖的一封信。这个垃圾体制,一定要逃离。然后,这个14岁的少年,开始一有时间就自学英语。在他15岁的时候,他表现出了极大的叛逆,当时共产主义国家的民众是被要求有点禁欲主义的样子,就是最好除了领袖,谁都别爱。当时的匈牙利是一党主义。但是,这个15岁的小伙,开始不剪头发,一点革命精神也没有,整天长发飘飘的走在校园里。然后班主任找他,他不理,校长找他,他身校长脸上吐口水。然后,就被学校给赶回家,那天又是他的生日,这真是一个令人难忘的生日礼物。他回家以后,他爸爸问他,今天是你的生日,我的祖国,不,我的儿子,你打算要个什么礼物。你是打算要一只白色的鸽子么?还是要一棵橄榄树呢?这个孩子说,我想要退学。

他爸爸是个大学教授,不是一般人,我当年想退学的时候,我爹妈来了个男女混打,把我这个念头给打消了。但是,这个大学教授有爸爸说:我们是共产主义国家,孩子的脑子是国家的自留地,这一点,我没办法改变。在这个国家,只有两种情况可以不上学,一种是:你脑子有问题,不能进入学校学习,显然,你不是脑子有问题,仅仅是头发太长了,这个不行。第二种情况是:你在某些方面有特殊的才能,是个天才,这个也可以,我可以帮你申请,但是,每年要参加两次考试,如果这两次考试不通过,又得回到学校去上学。然后,就申请了在家里学习。

在家里学什么呢?主要是自学英语,他要离开这个国家。因为他父亲是大学教授,有个学生在匈牙利的中央统计局工作,还当一个大官,是首席工程师,因为自己的儿子整天在家里,不如让他去中央统计局去玩玩。于是他又整天去中央统计局里去长发飘飘了。在中央统计局里,他碰到了一个是他老师的学生容博客,一个是苏联出的Ural II计算机。容博客教会了他如何对这台计算机进行编程。我查了一下这台苏联的Ural II计算机,可能是个八位的计算机,当时已经是1964年了,如果和美国比较的话,这台计算机已经是非常的落后了,操作系统不是分时,但是,这样反而更像是后来的个人计算机。除了中央统计局加减乘除的工作,他大概用1秒钟就做完了,因为只要知道了价格,一下子就能完成所有工作了。用他自己接受采访时候的话说:“只要有了市场价格,这些问题一毫秒就完成了。”看来这个西蒙尼并不太喜欢这种一毫秒就能完成的工作。

他爱上了这台电脑,在他老爸的学生的指导下,这个长发漂漂的少年开始开发了一个编程语言,名字叫Colur(code Language for Ural)的首字母缩写。这个编程语言深受同事的喜爱,这是一个16岁少年一生的骄傲。多年以后,这个身价达百亿美元的富豪,在美国西雅图郊区湖边的大别墅里,在一个机密的保险箱里,没有存放现金,没有存放他在微软的股票,也没有存放传统上的珠宝,那个保险箱里只存放了两个东西,一个是他加入美国国籍的文件,另一个是他16岁时写的Colur程序的源码,一大盒Ural II的纸带。我觉得这一大盒纸带,就是这个16岁少年最初的梦想。

按照匈牙利的法律,18岁必须要去服兵役了。在当年的匈牙利,当兵并不是保家卫国,而是时刻提防百姓。在1956年的时候,日子过不下去的百姓两次在规模的流行示威,当局命令士兵对手无寸铁的百姓和学生开枪,共造成3000人死亡。在17岁的时候,西蒙尼决定离开这个国家,他不想去当屠杀百姓的刽子手。他把这件事情告诉了自己的父母,这个世界上,只有三个人知道,他要离开匈牙利了。父母表示了最大的支持。他开始有意无意的去外国人多的地方,当时他自学的英文水平已经非常高了,他希望找到一个国外的公司,然后去国外工作。当然,这是一件非常困难的事,为了能离开这里,他一直在寻找机会。机会终于在一次计算机展览的时候到来,他找到了一家丹麦的公司,给当时的参展人员一个纸带,说,这是他写的软件,请帮忙给公司的老板看看,如果可以,他希望能加入贵公司。

几个月以后,这个丹麦公司的总经理来匈牙利,找到西蒙尼,确认了这是个天才。随后,就从丹麦发出了工作邀请,并且有一张机票。事情远比想象的复杂。如果大家研究过历史的话,会知道这样一个情况,和东德西德的关系一样,共产主义国家是修柏林墙的那一方,如果有一个奴隶试图逃脱,这是国有资产流失。虽然有丹麦公司的工作邀请,但是匈牙利也有自己的柏林墙,不肯放人。随后,他的父亲开始找人担保,让匈牙利政府相信,这个奴隶还是会回来的,一年后就回来。证明材料非常多,但是匈牙利政府也有自知之明,自己也知道自己是垃圾,不回来的可能性太大了,因为正常人,只要看一看外面的世界,大概率不会回来当猪。死活不肯批准西蒙尼离开。

这个时候,显出了一个父亲的伟大,他父亲提出了这样一个保证,让自己的儿子考大学,而且是最好的大学,当然,西蒙尼一下子就考上了,但是一年后入学,如果他儿子不回来,就失去了上大学的机会,而且,他也会从大学里失业,只要儿子不回来,教授不当了。当局看到这个担保,实在是太高了,因为只要西蒙尼一年后不从丹麦回来,他爸爸就当不了教授了,这个担保,很保险。就这样,他终于坐飞机去了丹麦,开始了异国他乡的生活。

一年以后,官员来到了他家里,问西蒙尼呢?他妈妈苏珊娜平静的回答:也许在美国的旧金山吧。官员当场就愤怒了,西蒙尼的爸爸和妈妈被关进了监狱,也失去了所有的工作。在出狱以后,他爸爸以写书为生,写了一本物理相关的书,这本书后来还翻译成了德语和英语。在多年以后,西蒙尼这样评价这件事情,仍然非常感激自己父母做出的牺牲,他说他的爸爸不想让他感到后悔,他父亲说,每个父母在那个时候,都会做出一样的决定。西蒙尼说,他父亲也许做不了他做的软件,但是,是他的父亲的牺牲,让这一切变的可能。

下一期讲一下这个孩子,一个17岁的,身无分文的未成年人,如何从丹麦到了美国,如何又到了微软的故事。

刘延栋 wechat
欢迎扫一下关注我的公众号:软件那些事儿
欢迎收听我的电台,你的支持将鼓励我继续前进