尽管Fortran让程序员使用同一套指令来为任意数量的计算机编程,但是要在不同的机器上运行Fortran程序,经常还需要修改。而且,Fortran是针对科学计算和工程问题的。于是针对其他目标的其他语言出现了,比如面向商业的通用语言(mon BusinessOriented Language; Cobol)。没过多久,便有很多种语言可供程序员选择了。而且,很多时候他们的职业路线就是由他们所选择和学习的最好的编程语言所决定的。
赫伯深信克服因为计算机语言激增而导致的困难将成为未来最大的技术挑战之一。“对我来说,编程不仅是一种重要的实践技术,”她在1961发表的一次讲演中说,“它还需要在基础知识方面做巨大的投入。”有些出乎意料的是,她担心最大的前进障碍会来自程序员自己。就像转变到一种新的宗教信仰一样,他们经常表现出思想保守,掩盖了他们的狂热。“程序员是非常古怪的一个群体,”她观察发现。
第1章 代码勇士(6)
他们成长得非常迅速,在很短时间内就变得很专业,而且很快就感染上了一定程度的抵制改变的毛病。有一个程序员,我听说他差点和客户吵起来,因为他不想修改他的系统,他几次走进我的办公室说:“我们一直是使用这种方法来做事的。”正是因为这个原因,现在我在我的办公室里挂了一个逆时针方向走动的钟。
在20世纪60年代初期,IBM尝试在软件领域掀起一场革命,能让同一个程序在任意数量的计算机上运行。IBM计划开发一系列机器,这些机器覆盖了大多数市场,它们是由一个操作系统控制的。这个耗资五亿美元开发的System/360产品线取得了巨大的成功。但是它的产生过程是很痛苦的,主要是因为创建软件的难度和成本被大大低估了。第一台360硬件是在1964年问世的,直到五年后它的所有软件才能够很好地运行。到那时,IBM在编写软件方面所花的钱已经差不多与设计硬件一样多。这使IBM公司的经理们非常吃惊,也非常生动地显示出了“影响计算机科技进步的最大障碍”和管理大型软件项目的问题。
在杜邦公司,戴夫?卡特勒发现自己陷入了驯化计算机这项重大任务的第一线。操作系统的不断标准化大大提高了计算机的实用性。但是编写应用软件的主要压力还是落在了计算机购买者自己的身上。这产生了一种没有想到的效应,那就是使很多大公司成为孕育程序员的基地。杜邦让卡特勒创建一个程序来分析实验室里的实验数据。这个工作很需要技巧,因为需要两台计算机一前一后一起工作。一台接收数据,将数据放入到一个文件然后发送到第二台机器,第二台机器分析数据并把结果发送给研究人员。
人们希望这个程序是所谓的“实时”系统,它能使计算机接收到信息后立即做出回应,而不是几个小时或者几天后才给出结果。第一个实时系统是在风轮计算机上创建出来的,供空军和海军跟踪敌人的飞行器,并指导美国的攻击机命中目标。
实时程序是非常有价值的一种创新。对于像杜邦这样努力寻找新材料及其用途的公司来说,快速响应的帮助比延迟响应要大很多很多。杜邦想让卡特勒的程序运行在从数字设备公司(DEC)购买的小型计算机上。DEC是十年前由风轮计算机的一个工程师创立的,DEC是小型计算机领域升起的一颗新星,它大胆打破传统。在过去,计算机设计者们提倡可以让许多工作共享运算能力的大型主机。小型计算机的价格经常低于十万美元,这第一次让人们可能分配一台计算机专门做单一的工作,比如跟踪零件的轨迹,实验数据或者机器工具的操作。
尽管有用,但是像DEC的PDP这样的小型机通常只配备很少的软件。购买者不得不自己设计他们需要的软件。在接下来的几年中,卡特勒编写出了实时程序和其他一些PDP软件,成为一位为DEC计算机设计代码的专家。
但是,卡特勒开始厌倦杜邦了。他想要到一家计算机公司工作,于是他选择了DEC。因为钻了IBM产品线的一个空子,DEC不仅成长得非常迅速,而且摒弃了传统的商业模式。它没有征购土地建设办公场地,而是把波斯顿(Boston)郊外的一个废弃工厂改造为员工的办公室,这家工厂位于马萨诸塞州(Massachusetts)的梅那特(Maynard)。DEC也没有坚持IBM青睐的从上到下的管理方式,相反,DEC允许工程师实践他们自己的想法,即使冒着重复别人的风险。
第1章 代码勇士(7)
卡特勒很渴望为DEC的计算机编写软件——他如此渴望,以至于和DEC销售人员的一次偶遇促使了他到这家公司去参加工作面试。随着硬件的不断发展,DEC很需要编写代码的强人。卡特勒刚好满足了这一需要。于是在1971年,卡特勒接受了DEC的工作,搬到了马萨诸塞州,这一年他二十九岁。
卡特勒很快就博得了DEC的青睐。没过多久,他就成为这家公司的软件之星,并让他去带领一个开发代码的团队。他完完全全被工作所吸引了。那时,他的第一次婚姻已经破裂了,第二次正朝着浅滩行驶。正像他自己所承认的,他根本不是会照顾家的男人。当他终于和第二个妻子散伙后,他发誓再也不会结婚。“结婚是一个错误,你只能犯两次错,”他说。
卡特勒是一流的程序员。他全身心地投入,沉迷其中,争强好斗。他有非常坚强的意志和信心。他投入非常大的精力来注意细节。而且,他在设计和编写代码时不断地追求更好。“大多数人学会如何把一件事做得很漂亮以后,便一生一直做这个,”一个同事观察发现:“他不是卡特勒。卡特勒会从自己的成功中学习。下一次,他会做得更好。所以每次,他都上升到一个新的高度。”这一点是很令人吃惊的,因为在科技方面取得成功的很多人也没有这样的特质。而且,他非常地投入——除了分配到他手中的软件任务外,他对其他任何脑力劳动都没有热情——这是很有好处的:“对可能干扰他的任何人和事,他不仅置之不理,而且还会对其进行攻击和诋毁。”
卡特勒骂人的功夫也炉火纯青。反复无常而且脾气倔犟,他可能根本不顾及脸面,大喊大叫,根本不顾及最起码的礼貌。他发脾气时,嘴里动不动就冒出一连串污言秽语。每次新的爆发都把他的形象又磨砺一番。陌生人是最受不了的。有一次,一位女工程师在放满打印机的房间里第一次遇到卡特勒,卡特勒正在那里往外抠卡在打印机里的碎纸。这位女工程师以期待的眼神看了卡特勒一眼,这时正好卡特勒也抬眼看见了她。于是,卡特勒咆哮起来了:“你就是那个把打印机搞垮的混蛋吗?”
尽管他的态度没有给任何人留下好印象,卡特勒还是赢得了称赞,因为他在为DEC的DPD11计算机构建实时操作系统的工作中起到了关键作用。他出色地完成了一项非常讲究技巧的任务,可以把程序缩减得更小。这是至关紧要的,因为程序越小,它便运行得越快,消耗的内存也越少。卡特勒用了一种很简单的方式来表达他希望代码更紧凑的愿望,在他的办公桌上放了一个橡皮戳,上面刻着:“大小就是目标”(Size Is The Goal)。当他觉得程序员要增加的功能会大大增加内存需求时,他就会使用这个戳盖在驳回备忘录上。这个戳让程序员们对增加代码更加谨慎,同时也提供了一个笑料。很快,很多男员工的房间里都出现了一句刺眼的短语:“大腿就是目标”(Thighs Is The Goal)。
对于他的同事来说,卡特勒是一位英雄,一个不能用平常规则来评判的超人。“他让你感觉你是他的一位同伴,一起成就伟大的同伴,而且你再也不会有更好的和更值得信赖的同盟,”一个同事这样说。卡特勒希望所有人都表现得很完美。为了传达紧急的消息,他会把大家召集到一起。他喜欢奚落他的伙计们,但是为了改善他们的代码质量,他会不遗余力。有时,他甚至捡起被扔到垃圾桶里的代码,用红笔纠正了上面的错误后还给代码的作者。 txt小说上传分享
第1章 代码勇士(8)
卡特勒不仅很严厉和冷酷无情,他还要求他的团队要绝对诚实。“如果你对他花言巧语放烟雾弹,或者你试图欺骗他,那么他会对你残忍无情,”一个同事说,“他不会只是让你自杀,他会攻击,而且他不会忘记。”
他也很吝啬表扬别人。罗杰?海恩(Roger Heinen)是卡特勒很喜欢的一名程序员,他经常渴望他的导师可以对他说句好话。“当你做过头和犯错误时,他会立刻批评你,”海恩说。在经历了这样的一次打击后,海恩想知道卡特勒是不是还很看重他。因为太害怕而不敢问,他把手伸进办公桌里,取出一张字条,那是卡特勒一段时间以前写给他的。纸条写得很简单:“罗杰,你真的把工作做得很好。谢谢,戴夫。”
一个强有力的贵人让卡特勒有可能在DEC红了起来。在早期,卡特勒对待编码的认真态度和积极主动的领导风格吸引了戈登?贝尔(Gordon Bell)的注意,戈登?贝尔是DEC的最高工程官员,也是大多数重要计算机产品的设计者。贝尔是很少见的既有技术天赋,又有策划才能的人,他在1960年加入DEC,当时他二十六岁,刚从MIT毕业。在接下来的十五年中,他“领导、论证、思考并建立了很多计算机策略,这些策略把DEC变成IBM的最强大的挑战者”。
工程师们很喜欢贝尔,喜欢他的温和活泼。他关心的问题非常广泛,这种广度既让人高兴,又让人生气。他的思想会到处漫游,以至于那些真正想和他谈话的人要努力把他隔离起来,防止他的注意力转移。“要和戈登交谈,你必须把他带到小汽车里,行驶而且不让他打开收音机,”一个人说。
在1975年初,贝尔觉得DEC正在失去前进的动力,尽管财务报表还很不错。当时,PDP11计算机已经面世五年了,而且IBM正准备引入它的第一款真正的小型机。贝尔觉得DEC需要大大改进机器来在IBM面前保持领先地位。经过了整整一个冬天,贝尔构思出了一个新的计算机产品线,通过这个产品线他认为会让DEC继续走在竞争对手的前面,而且同时也会让那些已经在PDP11上投了很多钱的客户满意。这个新的产品线叫Vax,会运行一个新的操作系统,被称为VMS,VMS会允许用户既可以运行新的程序,又可以运行为PDP11编写的旧程序。“向后兼容”意味着Vax一问世后,就可以在上面运行许多现存的程序,而不是要等待程序员编写出新的程序,这样的事情以前经常发生。同时,Vax的设计是“可调整的”(scalable),这意味着同一个软件可以在不同配置的Vax计算机上运行。用户可以在保留他们熟悉的软件的前提下,切换到更高配置的Vax。
这一切表明Vax会成为计算机历史上的一道分水岭。在组建团队时,贝尔挑选了DEC中最聪明的工程师。他要卡特勒来领导创建VMS操作系统的团队,在贝尔心中,卡特勒是DEC的一流程序员。
把卡特勒和其他四个高级工程师召集到一起后,贝尔在1975年4月1日开始了Vax项目。这个小组开了很多激烈的会议来反复推敲设计概念。“他们开始时很安静,先花十五分钟简要介绍议题,接下来就不可避免地进入到了大声争论,表面看来一片混乱,而且像是很敌视对方。但不知什么原因,他们总是能高调地结束,工程师们面带微笑鱼贯而行走出会议室。”
第1章 代码勇士(9)
贝尔帮助卡特勒,不让他受到那些爱管闲事的局外人的干扰。“我不会容忍任何人插进来影响戴夫做事,”他说。即便如此,VMS项目还是让卡特勒承受了巨大的压力。这种压力体现出来了。有一段时间,早晨当他从床上爬起来时,会感到头晕眼花,甚至不能把身体站直。化验表明他的血压非常高。他立刻开始吃药来把血压降下来。作为一种预防措施,DEC让VMS团队中的其他经理也检查了血压。做检查的护士说,卡特勒的血压是见到过的最高值。
经常受卡特勒唇枪舌剑之苦的同事们不由自主地会拿卡特勒的健康问题来奚落他。在异常激烈的争论中,一个同事开玩笑说悬而未决的等待令他痛苦不堪。还不如卡特勒的心脏受了伤害,那样他们就可以不再为这个项目忧虑了。“难道你就不能一下子把这个项目做完了事?”他解释说。
很清楚,这个时候卡特勒需要有人来帮助他开发VMS软件。这个团队很小——最多时只有十个人——而且卡特勒是高级程序员。但是卡特勒�