软件界的传奇—Anders Hejlsberg Anders虽然没有显赫的学历,无法获得Turning Awards。但Anders的实力和贡献绝不输于任何一位Turning Awards获得者。 对于成千上万的使用Borland Turbo Pascal和Delphi进行编程的软件开发者来说,Anders Hejlsberg,这位丹麦的软件大师让他 们肃然起敬,是他创制了上述两个备受欢迎的软件开发工具。 作为Turbo Pascal、VisualJ++、Delphi、C#的缔造者,.NET的领军人物,Borland的创始人之一,Microsoft的灵魂人物,Anders 在一定程度上影响着全球软件业的发展。英雄落难 Anders首次跃上软件业界舞台是源于他在80年代早期为MS-DOS和CP/M写的一个Pascal编译器。不久一个叫做Borland的年轻公司雇 佣了他并且买下了他的编译器,从那以后这个编译器就作为Turbo Pascal在市场上推广。 在Borland,Anders继续开发Turbo Pacal并且在后来领导一个团队设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语 言。 Philippe Kahn和Anders都为Borland做出了重大的贡献,同时两人之间还有着深厚的感情。在Borland工作时,对于Anders任何想 法和计划,Philippe Kahn都是不遗余力地支持。也正是这个重要的支持力量,才有随后极为成功的Borland Pascal以及Delphi的问 世。 但是在Philippe Kahn离开Borland之后,Anders再也没有了这股来自最亲密战友的强力支援。1997年,Borland新的CEO Delbert Yocam在掌握大权后,整个公司开始走向第二个重要的转变,Delbert对于Borland产品的开发和趋 势也有了不同于Philippe Kahn的看法。 当Java在1996年逐渐快速发展之后,睿智的Anders也看到了Java成功的未来。因此在他不再积极参与Delphi2/3的开发工作之后, 便非常希望能够主导Borland Java开发工具的开发,期望能够像当初的Delphi1.0一样,为Borland再次开发出全世界一级的Java开发 工具。 不过,由于当时Delphi是Borland最重要的收入来源,高层仍然希望Anders继续在Delphi产品线上投入全力,因此当时Delbert并 没批准Anders的请求。 Borland的下一个重要的开发工具JBuilder(当时的产品开发名称为Latte),仍然交由其他小组负责。依据笔者推想,由于当时 Anders对于Java已经有许多的想法,因此才会有后来的VJ++以及C#,这些产品和程序语言的许多特性想必已经在Anders的头脑中酝酿 了一段时间了。 Delbert没有允许Anders带领Latte开发小组,但Anders仍然没有放弃他的新计划。也许是Anders注定和Borland的缘分已经到了尽 头,正好这个时候Microsoft展开了有史以来对Borland最大的挖角行动。在Anders无法在Borland取得满意的支持之后,Microsoft提 供的优厚条件顿时对Anders产生了致命的吸引力,从而造成了Borland无法挽回的遗憾。弃Borland投Microsoft 1996年,在为Borland工作13年以后、Delphi 3发布前,Anders离开了Borland,加入了Microsoft。在那里一开始Anders作为 VisualJ++和windows基础类库(WFC)的架构师。随后,Anders担任了C#的主要设计者和.NET框架创建过程中的一个主要参与者。之 后,Anders领导C#编程语言的后续开发。 在此之前,Microsoft曾多次企图挖走Anders,但都没成功。据说Anders去Microsoft(主要)不是钱的问题,虽然Microsoft开价也 相当有吸引力:130万美元年薪外加股票期权分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组其他成员在修改编译 器问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。 Anders在Delphi 3中几乎没做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。Anders在Borland时把所有精力都放在了 Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,于是Anders加入Microsoft就势在必行。 Microsoft用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了Anders之后,Borland曾提出通过不正当手段吸收新成员的控告。 Borland还曾声称:提供了很少的细节来支持指控Anders正在开 发“Delphi for Java”。这场诉讼虽然最终以Borland的胜利而收场;但Anders已经在为Microsoft工作了。 C#语言 在Microsoft把视窗操作系统和软件向网络迁移的新市场战略中,C#(发音是C Sharp)语言是最重要的环节,作为Microsoft反击 Java语言的最有力武器。 在各大软件公司都争先恐后地把各自的应用程序移植为面向手持设备和个人电脑的互联网服务时,Microsoft希望软件公司采用C# 来编写各自的基于Web的软件和服务。同样,Microsoft也希望商家能采用.Net家族的电子商务软件来运行Web服务。主要目的是通过 C#来打倒Java。 Anders领导了C#编程语言的设计开发团队。2003年7月30号,Anders与Bruce Eckel(《ThinkinginC++》以及《ThinkinginJava》 的作者)和Bill Venners(Artima.com的主编),在华盛顿州Redmond的Microsoft办公室进行了一次访谈。Anders谈论了C#语言 和.NET框架设计上的一些取舍: ◆ 在第一部分:C#的设计过程中,Anders谈论了C#设计团队所采用的流程,以及在语言设计中可用性研究(usability studies) 和好的品味(good taste)相对而言的优点。 ◆ 在第二部分:Checked Exceptions的问题中,Anders谈论了已检测异常(checked exceptions)的版本(version ability)问 题和规模扩展(scalability)问题。 ◆ 在第三部分:委托、组件以及表面上的简单性里,Anders谈论了委托(delegates)以及C#对于组件的概念给予的头等待遇。 ◆ 在第四部分:版本,虚函数和覆写里,Anders解释了谈论了为什么C#的方法默认是非虚函数,以及为什么程序员必须显式指定 覆写(override)。 ◆ 在第五部分里,Anders谈论了DLLhell、接口契约、stronganmes以及互操作的重要性。 虽然Anders没有显赫的学历,无法获得Turning Awards(即图灵奖,信息科学界最高荣誉奖项,等同于诺贝尔奖)。但笔者认为 Anders的实力和贡献绝不输于任何一位Turning Awards的得奖人。 Anders是最好的信息实践型人物,在2001年,他终于获得了信息界最具权威的信息刊物Dr.Dobbs'Journal颁发的Excellent Programming Awards,以表彰Anders为信息界做出的卓越贡献。 “他简直就是神” Lino Tadros是第一个使用Delphi 2创建ActiveX的程序员,并因此被Delphi总设计师Anders请到Delphi开发组负责ActiveX开发 。 “Delphi 2上市后OLE和COM还是个神秘的技术。那时我对 ActiveX 控件的所有东西都非常感兴趣。我在Borland停车场等Anders, 当时他正抽着一支香烟走出来,我问我心目中的‘神’:能否给我一些指点如何用Delphi 2写一个OCX控件?他说:‘很有趣!为什么不 自己找出来并告诉我呢’。我们约好每天在停车场碰面(抽一支烟时间),我向他请教一些问题并告诉他我的研究成果。我们每天碰 面次数越来越多,都越来越有兴趣实现该技术。1995年夏天,我终于用 Delphi 2写出了第一个ActiveX控件!” “最有趣的事情发生在Delphi 3开发时期”, Lino 说,“当我在自己电脑上运行编译一个程序时遇到一个严重问题并且已经浪 费了我大约4h,我只好去找Anders和Chuck寻求帮助。他们几乎同时坐在电脑前并开始用TD32调试delphi32.exe。没过几分钟, Anders指着屏幕上的CPU窗口中几个二进制位说:‘看!Chuck,这个比特好像不应该在这儿,这是一个记录’。Chuck看了5秒钟并证 实了Anders的意见。然后Anders看着我说:‘Lino,在从网络安装期间,其中一个包因某些原因向左偏离了一个字节,删除它并重新 安装。’” “这些家伙简直就是‘神’!”Lino 可能就是因此自信心大减,而离开了Borland。

评论