《观止》

下载本书

添加书签

观止- 第8部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!

  伍德在耶鲁大学度过了六年,他努力扎实地学习,当时,研究领域的人们推崇自我鼓吹和自我膨胀,这已成大学里的风气,但伍德未受传染。伍德觉得他的教授们与现实脱节了,“他们在有限的领域里是非常聪明的人,但是他们没有能力来判断我做的是好还是坏。”
  伍德在耶鲁大学的唯一收获是在那里遇到了他的妻子。这发生在1982年的11月,伍德已经三十一岁了,不过之前他从未跟女性约会过,在他们系里工作的一位行政助理吸引了他的注意。她是一个7岁男孩的母亲,当伍德打电话给她提出约会的请求时,她还不认识他。他们着魔般坠入爱河,很快就谈及结婚的事了。伍德开始四处找工作,因为他有了离开耶鲁的理由。当时,他的一个耶鲁同学在微软做程序员,他帮忙安排了一个面试。伍德飞到西雅图去见盖茨。盖茨在面试时,不停地在椅子里摇晃,拿着一只钢笔在自己的手上涂涂画画,墨水都飞到他自己的衬衫袖子上了。而被微软前景所吸引的伍德,装作没注意到。
  伍德在微软的第一个项目就是Windows的原始版,这个项目让伍德引人注目起来,因为盖茨认为Windows是微软能从IBM独立出来的主要出路。接着伍德接手了另一个备受瞩目的艰难的任务——OS/2,IBM把它当作是DOS的接班产品而大力支持。1988年11月,他结束了OS/2的开发工作,他认为做个项目的一年是“有趣而荒谬”的。一年中,他还在IBM的英国和佛罗里达州波卡拉顿市的实验室里度过了整整12个星期。这一年的经历使伍德对OS/2彻底失望,OS/2能同时运行多种程序(DOS则不可能),但只要任何应用程序出现问题,整个OS/2就不能运转了。伍德像丢“一包垃圾”一样放弃了OS/2,还认为这是“好设计不可能出自委员会(译者注:“委员会设计”指很多人同时进行设计,却没有统一的看法)”的最好例证。

第3章 部落(5)
疏离了他的OS/2同事,伍德需要另找地方着陆。因为他不能容忍与“无能的人”共事,自然而然他的早期前途看起来比较暗淡。他发现计算机这块新领域的时候,他既没觉得它像个家,也没觉得它意味着成功。而现在,计算机对他来说,意味着家,也意味着成功的所在。他在微软的经历既可以说是不同寻常的,又可说是十分典型的。像这样一个软件明星,对卡特勒的团队来说,肯定是锦上添花。他是一流的程序员,工作效率极高,精力充沛,他可以让自己发挥得很好,也能代表微软的形象。盖茨心里乐哉乐哉。
  伍德为加入NT小组而激动万分,他在那儿发现了“一些聪明人”。但他也感觉怪怪的,因为卡特勒的部落想依靠他来帮助他们来适应他们的新家,可是“连我自己也不是很擅长微软方式”。
  卡特勒的团队就操作系统的想法跟伍德聊了好几个小时,他们希望这是为个人电脑创造出的最先进的操作系统。“我就在一个新的沙箱里。”伍德说,“我们没有产品。我们没有日程进度。我们只有乐趣!”
  他们也不赶时间。鲍尔默希望这个部落花六个月到九个月时间来理出技术思路,了解微机特性,最后能列出一张“可交付成果”清单。这样的节奏适合卡特勒,他想“一举成功”。许多程序员的工作方式是步进式的,通过多个版本来逐步完善一段代码。每个版本都为他们的想象和推理扮演着堡垒的角色。卡特勒则相反,他在开写之前,先在头脑里形成代码图,然后再高精确度地写下代码。“我不是那种尽可能快地写出代码,然后再一遍又一遍地修改的那种人。”他还说,“另一方面,我不怕重写任何东西。如果它的结果并不是我想要的,我不怕全部推翻,重新来写。”
  对于编程,卡特勒是个实用主义者。他相信形式优先于功能,但他也不是完全屈从于结构。他总是有正确的开始,而结束时,他的代码也只有极少的错误。通常,他先为团队写出最抽象的代码。他把一个操作系统预先分为几十组代码,每组代码都附着详细的要求。编写代码需求本身就是一项艺术。工程师们早就从他们的职业经验里得知,一个糟糕的代码需求会导致整个项目的死亡,而一个好的代码需求则是一座灯塔,当程序员迷失方向时,灯塔会帮助他们回到正确的航线上。然而代码需求不仅仅对它的创作者有用,它还能帮助所有参与开发程序的人。每段代码共生共存,整个程序就好比一个精致的生态系统,如果一段代码有问题,甚至是和其他代码没有直接联系的时候,也可能会摧毁整个程序。
  依赖代码需求有两个缺陷。写出一份代码需求就要好几个月。一旦编程开始,代码需求也需要不停地修改更新,否则它就会因过时而不起作用。过时的代码需求可能会起到误导的作用,会导致混乱。只要代码需求在有效期内,就需要专人来维护。这个工作由卡特勒在DEC实验室的首席程序员卢?皮亚佐利(Lou Perazzdi)担当。
  皮亚佐利是个高高瘦瘦的男人,很少挺立站直或提高他的音量。“戴夫是位实干家,”他说,“我喜欢给实干家工作。” 皮亚佐利除了是位天才程序员,还是一位程序员教练。他的管理哲学很简单:让你的人们快乐。他认为他的程序员们迟早会做对的事情。他一直是位重实际的人。如果有人因疲劳过度或生气而不能继续工作,皮亚佐利会询问什么能缓解他的烦恼。有时候,程序员会给一个直白的答案,会要求要一个大点儿的显示器或是一个装数据的大硬盘。皮亚佐利有一笔基金,通常可以满足这些要求。也有时候,程序员的心情太过抑郁,而疗方也比较贵重。曾经有个程序员想要一个月的休假去意大利游玩,并在哥斯达黎加(Costa Rica)的海岸潜水。皮亚佐利通常会这么解决这样的要求:你做这个,做这个,再做这个,做完后,就给你安排旅行。善解人意的皮亚佐利是最能衬托卡特勒这朵红花的绿叶。“如果说戴夫是盐,卢就是糖。”伍德这样评价。当人们害怕和卡特勒讲话的时候,他们会把他们的苦恼和烦闷诉说给皮亚佐利听。当卡特勒非常生气,忍不住要惩罚一个人的时候,他先向皮亚佐利发火,皮亚佐利再依情况,或是平静地把坏消息传达给当事人,或是不告诉任何人。许多部落成员对皮亚佐利都有极大的感激之情。“卢维护着一批自大、脾气糟糕的人,如果没有他,这帮人说不定会自相残杀。”其中一个成员说,“当有些人因为受不了卡特勒而提出辞职的时候,他能把人留住。”然而,伍德却抱怨说卡特勒和皮亚佐利用的是红脸白脸的伎俩。“麻烦就是,戴夫太野蛮了,卢又太好了。”他曾经写道。

第3章 部落(6)
其实,也没什么太多需要做的。“卢真的比我随和得多,”卡特勒承认,“他会这么说‘这里出现了一个问题,但我不准备做任何事情去解决它,因为它自己会修理好。最终,每个人都能发现错误的地方。所以我才不会花这份心力。’”
  皮亚佐利的禅宗般的生活态度也反映在他自己成为软件精英的曲折道路上。他给卡特勒做了十年的助手。在20世纪70年代早期,他先在NASA(美国国家航空航天管理局)做一名程序员。航天局的工作十分依赖于计算机,从控制任务到分析天文资料。航天局给皮亚佐利的工作任务是给PDP11写程序,PDP11是DEC生产的计算机,它的操作系统正是卡特勒早期写的。几年后,皮亚佐利厌倦了他的一万美元联邦月薪的生活,加入DEC,成为一名巡回程序员,他的工作是帮助消费者把软件应用到他们购买的硬件上。在DEC的一次由卡特勒教授的培训课程上,皮亚佐利与卡特勒碰面了,他们一见如故,就卡特勒喜欢的程序足足谈了一个晚上。
  几年来,他们一直保持联系。1981年,皮亚佐利搬到维吉尼亚州林奇堡市,去负责DEC在那一带的消费者。他和女朋友买了一块80英亩的农田,过起了“回到地面上”的生活。他的女朋友是来自阿拉巴马州的一位高中老师,来到这儿后,在附近的一个镇里的学校教书。皮亚佐利很少在下午五点后还继续工作,他和女朋友在农田里度过了不少时间。他们过着田园诗般的生活,不过从一开始他们就知道这种日子不会持续太长。他们养火鸡和家鸡,烤面包;夏日里收集木柴,冬天就生起篝火。他们允许当地的农民在他们的地里放牧,作为交换,他们会请求农民为他们喂鸡。他们还有一个存烟草的仓库,有时候他们也把它出租给邻居。
  1985年8月,卡特勒在他的位于西雅图以外的实验室里为皮亚佐利提供了一份编程的工作。皮亚佐利接受了,很快就以他的勤奋和镇静的态度给卡特勒留下深刻的印象。后来,卡特勒就让他去负责Mica软件,Mica软件是Pri*工程的核心软件。而Pri*的取消打击了皮亚佐利。他从未产出过一个商业程序(他所有的编码都是在内部被公司和客户使用)。“出货”也许是衡量程序员的生产成果的唯一真实的标尺。“如果你没完成,”卡特勒说,“所有绝妙的好点子都无任何意义。”
  DEC剥夺了皮亚佐利经历“完成”的机会。他发誓不能再让任何公司那样对待他。在他最后的给DEC朋友的电子邮件中,他表达了加入微软的欢欣,写道:“希望在我头发变白之前,我们能生产出一个商品。”
  皮亚佐利认为微软给了他第二次在软件业能一鸣惊人的机会,他注定要充分利用它。他在DEC喜忧参半的经历在这个项目上也帮了他不少忙,因为Mica软件本质上可以说是NT的预演软件。对皮亚佐利来说,过去的经历是序幕,他渴望着继续这场大戏。
  究竟什么是操作系统?卡特勒的团队想创造出什么呢?
  我们来描绘一下20世纪初一个富裕的英国家庭。把电脑硬件想象成一座大房子,这个家庭的住所。房子里有管道、照明、砖、灰浆墙、窗户和门——所有实体的物件应有尽有。
  接下来,想象一下计算机软件就是生活在房子里的人。家政人员住楼下,他们提供全套及时的家政服务。管家立在门边,司机在洗车,保姆在熨着衬衫,厨师提供一日三餐并烤着面包,园艺师在草坪上扫落叶。所有活动,看起来都像是分别在按照自己的进度进行,但实际上全部都由管家来协调和组织。这就是楼下居民的生活,在某种意义上,它是存在于背景中的。

第3章 部落(7)
接着考虑一下楼上的人。他们是楼下人辛苦劳作的全部理由。丈夫需要一个司机,不仅是为了省心,更是因为他想要外出旅行。妻子请来一个厨师,这样她的家人就可以吃得很好。孩子们从园艺师的工作中受益,他清除院子里的碎石片,让孩子们在室外可以安全地嬉戏。
  对楼上家庭和楼下忠诚的仆人的生活的描述清晰地说明了软件世界里的重要分工。楼上的居民是应用软件:文字处理、电子表格、数据库、电子排版和大量其他能满足人们需要和愿望的程序。而楼下的居民则共同发挥了操作系统的功能:他们是服务的领域,有些是自动的,有些则有特殊请求的。这些服务是提供优越生活物质条件的基础。
  卡特勒对他的操作系统有三个期望:
  可移植性:这可是软件业的圣杯——创造出一个可以适合每一种硬件的操作系统。当时,每种商业操作系统都是为特定系列的芯片而量身定做的,所以只能在装载这些芯片的电脑里发挥作用。程序员用最接近于目标硬件的汇编语言写了大量的编码。将软件和硬件联系在一起。当硬件成本远大于软件成本时,没有人介意这些。不过,后来当消费者发现在应用程序上的投资大过于购买硬件时,他们就不愿意抛弃他们已安装的但已过时的应用软件。NT便是创造一个通用系统的机会,它将在电脑世界开创一个新纪元。
  可靠性:在苹果机上应用的是OS/2和DOS操作系统,一个应用程序的运行失败往往会导致整个系统停止工作或崩溃,数据消失,迫使使用者重新启动机器。如果许多应用程序在同一时间运行——NT的未来特色之一——其中一个的运行失败会导致其他应用程序的停止运行。卡特勒想用“防弹”系统来结束这种不必要的崩溃。有了“防弹”系统,个人电脑的价值会增大,因为它们能可靠地支持在商业世界中所谓“关键任务”的服务,比如航空订票或者银行自动柜员机。卡特勒和他的团队知道如何来保证可靠性,他们的DEC操作系统是在电脑还是十分昂贵和稀有的时代诞生出来的,卡特勒解释说:“如果系统死了一个小时,那就糟糕透了。首先,当时你不能像现在那样,对一台电脑做那么多操作,所以每一分钟都损失惨重。”
  个性化:NT应该灵活十足,它将拥有不止一种用户界面,或“个性”。当时的个人电脑操作系统往往只有一种个性,也就是说,为DOS写的应用程序就只能运行在DOS上。NT将会支持OS/2的表示层管理器界面,但它也会设计成可以——如果微软选择这么做——支持其他诸如DOS或Windows或还没发明出来的操作系统的个性。
  在构思NT的时候,卡特勒及其部落们首先攻克可移植性的难题。
  可移植性的代码比较容易编写但效率比较低。理论上,用高级语言写出来的代码在经过编译后,可以在不同的微处理器上运行,而高等级的语言写出来的程序相对较慢,所占空间也大。微软的DOS、DEC的VMS和苹果的麦金塔操作系统,用的都是汇编语言,因为它写出来的程序小而紧凑,充分地发挥了特定硬件的作用。紧凑的编码固然是好的,因为它节约了内存的空间。内存空间包含了很多芯片,名叫DRAM(动态随机存取存储器),就好比一个汽油箱。汽油箱越大,汽车就跑得越远。操作系统越小,就有更多的油留给其他程序使用。txt电子书分享平台 

第3章 部落(8)
因为NT是可移植的,所以卡特勒知道它会很大。问题是,它将有多�

小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架