查尔斯·西蒙尼
查尔斯—西蒙尼(Charles Simonyi)是“所见即所得(What you see is What you get)”的发明人,这是微软赖以独霸天下的Windows系统的核心,查尔斯—西蒙尼还一手建立了微软的程序员管理体系,他在微软公司的头衔是首席建筑师(Chief Architect),是微软最高智囊团的核心。他是斯坦福大学的计算机博士,他关于“匈牙利表示法”的博士论文是每个Windows程序员必须首先学习的课程,Word,Excel等微软的应用软件都是在他的领导下开发成功,查尔斯—西蒙尼是软件史上的传奇人物。
“少年科学迷”Simonyi生长在50年代末期匈牙利的布达佩斯(美国还有一位非常著名的人物Intel公司的总裁安迪 格鲁夫也来自布达佩斯) 。大部分美国程序天才的典型家庭背景是:小孩特别聪明但很内向,对科学技术更为关注因为对他们而言科学世界这比成人世界更可靠,他们完全生长在自己的世界里。Simonyi的家庭则大不相同,他生活在被鼓励思考和表达看法的环境中,他的父亲是一位电子工程学教授,认为问题求解是个人成长不可缺少的一部分。而问题求解是计算机程序设计最主要的工作。不像其他程序天才的父母亲没有办法对小孩进行任何指导。Simonyi的父亲在他的智力成长过程中扮演了重要的角色。
“我父亲的采用的方法是假设解救方法已经有了,”,Simonyi回忆道:“这是解答问题的很好方法。我曾经问他一个问题:‘这需要多少匹马去做?’,他马上回答,‘五匹,你说我是对还是错?’,当我指出不可能是五匹时,他说:‘好,如果不是五匹,一定是几匹,你能算出来吗?’,结果当然我能算出,因为当我否定五匹时答案就已经出来了,通过这种逆向求解转移了我对答案的好奇心,这种好奇心主要是害怕问题没有办法解决”
“三年经历了三代计算机”通过父亲的帮助,Simonyi在他16岁时开始接触计算机,“我和计算机一起睡觉”, Simonyi笑着回忆。父亲给他找了一份在大学夜间看管Ural II型计算机的工作,这是一种老式真空管计算机,只有4000个字节的内存,整个晚上它就在Simonyi的控制之下了。
50年代末期真空管老式计算机在美国已经基本消失了,但匈牙利还在使用,这是时代的错位,当不久后个人计算机革命开始时,美国曾用过真空管老式计算机的人都或者退休很长时间了,或者早已去世。很年轻就开始接触计算机,还有时代的错位给了Simonyi双倍的好处.
“这么年轻就开始接触计算机,在匈牙利是很不寻常的。现在回头来看,计算机程序设计没有多大困难,而且六十年代的程序设计只能算是小孩的游戏。但在那时计算机是非常神秘的,人们非常担心让我接近这么昂贵的计算机。短短的三年,我经历了三代计算机的使用。第一代是在匈牙利,接着在丹麦的哥本哈根有一年半的时间使用的是第二代晶体管计算机,然后是在加州的伯克莱大学计算机中心,使用的是CDC 6400大型计算机。”
1966年Simonyi 提前一年高中毕业,由于匈牙利事件当时的人们生活在害怕和封闭之中,Simonyi幸运锝得到邀请去丹麦的哥本哈根大学,在那里他开始使用晶体管计算机,虽然这种计算机也没有操作系统。一年后他来到了美国的加利福尼亚。他的父亲没有和他一起离开,但这次叛逃给他的父亲带来了很大的麻烦。
Simonyi进入加州大学伯克利分校,他遇到了很多移民学生碰到的问题,作为外国学生无法得到奖学金,有计算机程序设计能力证明却不容易得到工作。但不管怎样还是开始为学校的计算中心工作,后来遇到Butler Lampson,Butler Lampson和几个教授合办了一家伯克利计算机公司,他们向他提供了股份邀请他去工作,这对他是很新鲜的事情,虽然这些股份最后一文不值。 在学校里Simonyi有时成绩十分出色,有时又特别糟糕,以至于学院院长向他询问原因,“Simonyi先生,你的成绩有时出色,有时糟糕,原因何在呢?我们可以帮助你,是毒品还是其他什么原因?”,Simonyi的回答是“原因是金钱和股份”。院长只好说,那我们无能为力。
“在施乐发明‘所见即所得’”伯克利计算机公司是美国国防部高级研究计划署(APRA)Genie计划的分支,由署长Bob Taylor资助,但由于经营不善终于破产。公司破产后,核心人员都被Taylor聘用,Taylor当时负责施乐公司的研究中心。
这样1972年Simonyi就来到了施乐(Xerox)的帕洛阿尔托研究中心(PARC, Palo Alto Research Center),这时他还未从学校毕业,在PARC他边工作边学习得到了伯克利工程数学的学位。
高级科学研究人员对帕洛阿尔托研究中心都心存敬意,因为在个人计算机领域,一些最具革命性的构思都是从这里产生。这些卓越的构思几年以后体现在苹果公司的Macintosh电脑上,也体现在微软公司的Windows软件上。
在PARC有很多研究项目,但Alto个人电脑项目是最有挑战性的,这是世界上第一台个人电脑,施乐给它赋予了很多奇妙的功能。Simonyi为Alto电脑编写文本编辑器Bravo,这是第一个“所见即所得(What you see is What you get)”的文字处理软件,Bravo改变了信息组织和显示的方式,这也是PARC对计算机人机交互界面发展的贡献。
那时的PARC 是世界上最好的研究所,拥有一流设备和人材,Taylor只聘用最好的人员,研究中心没有普通的人员,几乎所有人都是博士,都是自己领域最好的专家,但都各自行事。PARC有最优秀的的技术,但也是最脱离实际的。
1975年当Bravo和Alto电脑可以运转时,有很多高级人物前来参观。"所见即所得"的提法来自花旗银行的一次来访。Simonyi向他们演示在计算机屏幕上使用不同字体显示文件,然后将数据通过以太网传送到打印机上,打印出来的效果和屏幕显示的一模一样,花旗银行的一位代表说:“我明白了,这是所见即所得。”,这比以后成为"所见即所得"标准的Mactintosh电脑早了整整11年。Alto电脑的屏幕比后来苹果的Mac电脑屏幕大,也有鼠标但价格非常昂贵,售价5万美元,激光打印机需要二十万美元。比起来那时的微型电脑还好像是儿童的玩具。
但他的博士论文却不是关于“所见即所得”, 而是研究如何提高程序员生产力,描述如何采取有效方法组织程序员开发软件。软件开发的问题总是无限期的延期,如何在规定时间内完成开发是研究的主要课题。Simonyi认为在软件无法如期完成时加入更多的程序员只会增加管理负担,不是解决问题的正确方法,关键是有效地使用程序员,他提出了设置程序经理的方法。
程序经理负责软件设计和管理,有决定权,程序员按照设计方案去编码完成软件。Simonyi认为程序经理作决定时越快越好,深思熟虑的讨论比不好的决定带来的损失更大,程序经理的决定至少有85%被最终证明是正确的。将设计,管理,决定权集中在程序经理上,软件开发将更快,更有效。这种方法的关键是如何建立这样有层次的管理制度,在施乐这显然是不可能的,
“最后我终于觉得在施乐没有什么前途,这不止是市场部门和管理部门的问题,也是技术部门的问题。不过施乐的失败倒是救了我一把,如果施乐成功了,我最多能得到1000美元奖金,我不可能分享成功的成果。直到我看到苹果二型电脑上的Visicalc,我才看到了我未来发展的方向。施乐的问题就是‘产品越大越好’的大公司作风,一味生产越来越复杂,越来越昂贵的机器,这是非常危险的做法,因为这样很难根据市场变化转向。”
“一生中的转折点:加入微软”Simonyi决定离开施乐公司是在1980年,他的同事Bob Metcalfe也刚刚离开创立3Com公司,并向他提供了一份联系工作的名单,名列第一的就是微软的Bill Gates。
1980年11月Simonyi会见了Bill Gates和Steve Palmer,Bill那时虽然非常年轻,但对计算机的看法非常富有远见。Simonyi只和他们交谈了5分钟,就决定要到微软公司工作。他们在一起讨论了微软的未来发展,Bill预见Microsoft将成为微型电脑软件世界性公司,将全面提供各种软件产品包括操作系统,应用程序,编程工具和消费软件。
由于在施乐的工作经验,Simonyi对应用程序和图形用户界面(GUI:Graphic User Interface)的重要性深信不疑,但Bill以其卓越的远见也深刻认识到这一点,虽然他还不太了解施乐的成果。Simonyi回忆道:“我知道他有足够的资金去实现这些想法,有趣的是,拥有10万名员工和几十亿美元的施乐对这个项目却视而不见,年轻的Bill却可以提供一切,“需要聘用两个人”,“好的,还需要更多人吗?”,“需要办公室吗?”,“需要什么样的电脑?”这是个只需要几十万美元的项目。"
Bill花了10万美元购买了一台施乐的个人电脑Xerox Star,Simonyi用他来让公司里的人员认识鼠标,认识图形用户界面。盖茨1996年在Las Vegas Comdex展览接受采访时关于图形用户界面他说道“当Simonyi加入公司时,我知道我们未来一定会开发成功图形用户界面,问题只是什么时间。”
“我一生最重大的事情是加入微软公司,并参与了微软公司的飞速发展。可能我做的最重要的事情之一就是招聘,这是企业发展的重要因素,我们做得非常出色。很多当时我聘用的人都留在公司,大多数现在都有很高的地位,形成了一个非常有效率,非常负责的程序设计团体。”
“给微软带来的财富”Simonyi给微软公司不只带来了图形用户界面,而且还带来了另外两项财富。第一项是开发应用软件的经验,当时在个人电脑领域有四种类型软件:操作系统象Gary Kildall的CP/M,编程语言象Bill Gates的Basic,应用程序象电子表格Visicalc,还有工具程序提供附加功能。Gates对应用软件知之甚少,事实上正是Visicalc的成功才使得Simonyi离开施乐。Simonyi计划开发一系列应用软件包括电子表格,文字处理,数据库等。(这实际上是以后大为成功的Office系列的雏形)。
第二项财富是Simonyi关于程序员生产力的理论,它被Gates称为“软件工厂”理论,Gates将程序经理分成不同级别,形成了管理程序员的金字塔式的体系结构,Gates是最高程序经理,他以下是几个技术顶尖人物微软称为建筑师(Architect), 每个建筑师以下是几个程序经理,最后才是程序员。但“软件工厂”的理论未能成功,因为软件开发有太多的不定因素,不可能全部在设计规定之中,软件质量还得依赖程序员的天才。但开发管理制度很好地执行下来,微软形成了庞大而有效率的开发队伍。微软不像其他软件公司雇佣有经验的人,而喜欢从大学直接聘用没有工作经验的学生,因为年轻人更容易融入“微软模式”之中。
Simonyi认为:“真正的天才是非常有价值的,创业之初就是围绕着天才。在公司发展阶段,综合组织能力更为重要,这需要不同的技能。天才的产品常常和其他人无法合作,我们需要在一系列产品中采用同样的核心技术,合作比天才更重要。”
“应用程序大战:失败是成功之母”到微软后,Simonyi领导开发的Multiplan电子表格软件十分出色,,Simonyi在Mutilplan第一次创造了多级菜单(Menu)控制,这以后成为软件的工业标准。针对市场上最流行的电子表格软件Visicalc,Multiplan采取了类似今天Java采取的策略,支持各种操作平台和计算机,这在当时是很了不起的。 但却犯了一个致命的错误,由于IBM的坚持,Multiplan主要是为64K内存的电脑设计,性能上受到限制。一匹黑马Lotus 1-2-3在1982年推出,Simonyi 回忆到:“我第一次看到Lotus 1-2-3,我就知道我们遇到麻烦了。”Lotus 1-2-3的目标是256