四
四库全书
Unregistered / Unconfirmed
GUEST, unregistred user!
前几篇请见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2135073
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2149792
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2158989
第三章1请参见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2166978
第三章2请参见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2166990
-----------
本章均由热心网友windknight收集整理
----------------------
第三章3
天才的损失和新英雄的接棒
在Anders和Zack对于Delphi的走向逐渐出现了岐见之后,在Delphi 2.0的后期Anders
便没有主导Delphi 3.0 的发展,反之Zack在Delphi开发小组的角色却日益重要,后来几
乎是Delphi 3 和Delphi4 的主要领导人。为什么Delphi 的Architect Anders 会慢慢地淡
出Delphi 的核心呢?这和Philippe Kahn 的离开也有重要的关系。
英雄落难
Philippe Kahn 和Anders 共同创造了传奇的Borland,两人之间有着浓厚的感情。在
Borland 工作时,对于Anders 任何的想法和计划,Philippe Kahn
都是不遗余力的支持。也正是这个重要的支持力量,才有随后极为成
功的BorlandPascal以及Delphi 的问世。
但是随着Philippe Kahn 离开Borland 之后,Anders 再也没有
这股来自最亲密战友的强力支援。1997 年Borland新的CEO Delbert
Yocam 在掌握了大权之后,Borland 整个公司开始走向第二个重要的
转变,Del 对于Borland 产品的开发和趋势也有了不同于Philippe
Kahn 的看法。当Java 于1996 年逐渐快速发展之后,睿智的Anders
也看到了Java 成功的未来。因此在Anders不再积极参与Delphi 2/3
的开发之后,Anders便非常希望能够主导Borland Java 开发工具的
发展,期望能够像当初的Delphi 1.0一样,为Borland再次开发出全世界顶级的Java开发
工具。
不过由于当时Delphi是Borland 最重要的收入来源,Borland 高层仍然希望Anders继
续在Delphi产品线上投入全力,因此当时的Borland CEO Delbert Yocam 并没有批准Anders
的请求,Borland 的下一个重要的开发工具JBuilder,当时的产品发展名称为Latte,仍然
交由其它小组负责。依据笔者的推想,由于当时Anders对于Java已经有许多的想法,因此
才会有后来的VJ++以及C#,这些产品和程序语言的许多特性想必已经在Anders的脑中存在
了相当长的时间了。
当Del 没有允许Anders 带领Latte 开发小组之后,Anders仍然没有放弃他的新计划,
也许是Anders 注定和Borland 的缘份已经到了尽头,这个时候正好Microsoft 展开了有史
以来对Borland最大的挖角行动。在Anders无法于Borland取得满意的支持之后,Microsoft
提供的优厚条件顿时对Anders产生了致命的吸引力,而造成了Borland无法挽回的遗憾。
虽然Anders没有显赫的学历,无法获得Turning Awards(信息科学界最高荣誉的奖项,
等同于诺贝尔奖)。但是笔者认为Anders 的实力和贡
献绝不输于任何一位Turning Awards 的得奖人,
Anders 是最好的信息实践型人物,在2001 年终于获
得了信息界最具权威的信息刊物Dr.do
bbs’ Journal
颁发的Excel-lent Programming Awards,以表彰
Anders 为信息界做出的卓越贡献。笔者想Anders 应
该是许多本身没有高学历或非计算机信息科系出身的
优秀程序员最好的效法对象。
Hejlsberg,这位不世出的软件天才,笔者认为
Anders 是目前全世界最顶尖的软件技术人员之一。论
实践技术,Anders 可能是目前的第一高手,因为
Anders 精通程序语言,编译器技术,开发工具,
Framework 以及系统架构。笔者虽然知道许多软件界
重要的人物和好手,但是尚不知有任何人能像Anders
一样在这么多领域都能成为大家。下面是笔者整理出Anders Hejlsberg 到目前为止重要的
功绩,贡献以及获颁的重要大奖。
■和Philippe Kahn共同创办Borland
■开发出Turbo Pascal,当时首创的In-Memory Compiler,震惊了全世界
年轻时的Anders,
天分洋溢
Anders Hejlsberg 获得2001年
Dr.Dobbs's Journal的Excellent
Programming Awards
■开发出全世界最畅销的Pascal产品,Turbo Pascal(这是许多信息人员学习Pascal和Data
Structure 使用的经典产品)以及Borland Pascal。Turbo/Borland Pascal合计销售超过了
数百万套。Dr.N.Wirth(Pascal 语言的创始人员)也应该向Anders 致敬,表达Anders 对
于Pascal 语言的贡献
■Anders 使用汇编语言撰写编译器,其功力无人能出其右。创造出了全世界速度最快,品
质也是一流的Pascal 编译器。在Anders 离开了Borland 之后几乎没有人能够修改Anders
的编译器,他造成了开发出影响深远的Delphi这个伟大的RAD工具
■开发出VJ++语言
■Microsoft .NET 的Architect
■Microsoft颁授Microsoft Distinguish Engineer大奖
■发明C#这个又将造成重大影响的语言
■获颁Dr.Dobbs's Journal的Excellent Programming Awards
一个人一生能够做出几件让全世界都津津乐道的事业呢?Anders却成就了无数PC界伟
大的功绩,并且在程序语言,编译器,开发工具以及Framework 方面都有重要的贡献。PC
软件界因为有了Anders而精彩丰富了许多,也创造了许多令人惊叹的故事。更棒的是Anders
现在仍然在继续贡献他惊人的天份,就让我们拭目以待看看Anders 还能创造什么功迹。不
过不管以后如何,相信Anders 应该是大部份软件人员希望能够学习的目标。Anders的功力
也是大部份软件人员一生企望能够达到的境界。
在2002年Borland Developer’ Conference中,Anders Hejlsberg是排名第1的Keynote
Speaker,尚在Java的创始人James Gosling之前。根据现场同时聆听这两场Keynote Speech
的听众的报导,Anders 的Keynote Speech 是非常精彩的,而James 的Keynote Speech 则
相对的枯燥,许多人因此而提前离席。而且Anders在开始进行Keynote Speech之时便获得
了现场所有听众起立鼓掌致敬,看来在大多数Borland 开发工具使用者的心中,Anders
Hejlsberg 是永远的巨星。
Microsoft 挖角和Anders 的离开
Anders 在不介入Delphi 的发展并且无法主导Borland Java 开发工具的开发之后充满
了挫折感,没有了Philippe Kahn的强力支援,Anders 虽然是Borland最顶尖的技术人才,
却也无法对抗Borland管理阶层的力量。当然这也是从Philippe Kahn离开了Borland之后,
Borland 开始转型有关,这在稍后Borland的转变一文中笔者会有详细的说明。
虽然Anders 在Borland 遇到了挫折,但是对于Microsoft 来说这却是千载难逢的好机
会,在此时Microsoft 展开了大规模的挖角行动,而且是明目张胆的进行,正是由于
Microsoft 如此大胆的行动,因此也造成了不久之后Borland 对于Microsoft的法律控诉。
在这次的挖角行动中,Microsoft 同时锁定了数个Borland最杰出或是重要的人物,当
然Anders 是名列第1的挖角对象。时值1996 年,Microsoft终于展开了行动,使用的方式
是最直接的攻击,Microsoft 直接派遣加长型的大轿车到Borland 大门口找Anders 吃饭,
第1 次Microsoft 开出了年薪百万以上的条件,不过在Borland 知道了这件事情之后,
Borland 也很快进行了加码的动作,因此Anders并没有对Microsoft 进行响应。Microsoft
在苦等无应,按捺不住之下,很快就再次用大轿车找Anders。这次Microsoft 提出了2 百
万以上的条件,希望Anders 能够首肯。对于这次的喊价,Borland 可有点为难了,因为2
百万不是笔小数目,这已经比当时Borland 许多副总裁的年薪还高,此外如果Borland 答应
也加到2 百万以上,那么是不是Chuck 也要如此加码?那其它的Delphi R&D 小组要如何调
整?这些都是非常棘手的问题。
不过Borland 很快找到了解决的方案,那就是允许Anders从每一套卖出的Delphi版本
中抽取一定数量的版权费,如此一来Delphi卖得愈好,Anders 便能取得愈多的回馈。不过
就笔者的了解,Anders注重的并不是金钱上的问题,因为在Borland创立的初期由于Turbo
Pascal 的编译器都是Anders撰写的,因此当时Anders也是卖一套Turbo Pascal 就可以抽
取版税的,依照Turbo/Borland Pascal全世界销售数百万套来算,Anders 早就是富翁了,
薪水多一点,少一点并无所谓,Anders心中想的是自由发展的空间。在Borland提出了Delphi
的随版抽税,再加上Microsoft并不知道Anders真正想要的东西,因此Anders仍然没有响
应Microsoft 提出的优厚条件。
不过Anders实在是太重要的人物,而且Microsoft 在面对Java 日益俱增的威胁下,非
常渴望能够有像Anders 这样的人才带领Microsoft 发展下一代的开发工具,这当然也是由
于Microsoft 从以前向Borland挖来的人都做出了不小的贡献所致。Microsoft食髓知味,
当然希望能够得到Borland 的镇山之宝。在Anders 两次不为所动之后,Microsoft 决定祭
出最后的王牌,由Bill Gates亲自找Anders吃饭,进行最终的挖角行动。
不管读者喜不喜欢Bill Gates,但不可否认的是Bill也是一个天才。自古英雄惜英雄,
在Anders和Bill相谈甚欢的情形下,Microsoft开出了年薪3百万以上,数万股的Microsoft
股票。这个超高的条件,再以当时Microsoft 高贵的股价来计算,真是一笔庞大的数字,也
许对于搞软件技术的人来说,这已经是不可能的天文数字了。不过这些条件并不是打动
Anders 的主要原因,Bill 最后提出的条件是“答应给Anders 一个小组和极多的资源,让
Anders 尽情的发挥”。这个条件可说是打到了Anders的心底,因为Anders正渴望有人能够
支持他完成新的计划和想法。笔者想,在软件产业中大概也只有Microsoft能够拥有这种雄
厚的资源可以挖角任何人吧。
在Bill Gates 提了这样的条件之后,Borland 再也没有本钱能够和Microsoft 进行比
价了,只好眼睁睁的看着Anders 离开Borland 前往Microsoft再开创下一个人生的高峰。
在Anders 到了Microsoft 之后,Bill Gates 果然重用Anders,也立刻让Anders负责激活
Microsoft 的下一波开发工具计划,当然这个计划也是Microsoft 对抗SUN/Java 的整体计
划之一。Anders 到了Microsoft 之后立刻展现了实力,让Microsoft 的编译器技术又精进
不少,最明显的例子就是Microsoft 后期的Java Virtual Machine是PC 上执行效率最好的,
而在2,3 年后VJ++推出之际其编译出来的虚拟机械码的执行效率不但比任何的Java 开发
工具还快,在某些方面甚至比原生的Window开发工具,例如Delphi,VB,甚至是VC++还有
效率。这真是令人震撼,当然Anders 为VJ++打下的基础现在也展现在.NET 的C#编译器以
及.NET 的JIT(Just In Time)编译器之上,.NET的JIT在许多程序代码最佳化方面比Delphi
还先进。因此在2,3 年前当VJ++即将推出之际,在Borland 内部也引起了一阵骚动,并且
严阵以待,当然这又是另外一个故事了。
对于Anders 来说,到了Microsoft 之后不久又再次登上了生涯的另一个巅峰。因为当
初Anders 在Borland之时就有如孙子兵法中叙述的“藏于九地之下”,虽然是不世出的天才,
但是仅为少数的人所知,即使是使用Borland 产品的人在当时可能也不知道Anders这号人
物,因为Anders和Borland的风格很像,都是行事低调,不到最后绝不随意出手。但是Anders
被挖角到Microsoft之后,由于Microsoft的企业文化向来是前进、积极的侵略性方式,因
此Anders 也就转变为“动于九天之上”,负责Microsoft开发工具大军的核心大将,不但广
为人知,成为许多软件人员效法的对象,而且屡获大奖,不但获得了信息软件业界的推崇,
最后也终于获得了信息学术界的认可,可说是实至名归。
Anders 的离开对于Borland 来说是一个很大的损失,不过对于Delphi R&D 小组来说却
是有好有坏,因为Delphi 开发小组虽然失去了最重要的支柱,但是却也给Danny Thorpe
一个快速掘起的机会,在1 年后Danny 果然立刻成为了Delphi/C++Builder/Kylix中最杰出
的人物之一(另一个当然就是Anders 的老搭挡ChuckJazdzewski了),也是笔者认为目前在
Borland RAD(注)部门中功力最厉害的人物。在稍后的内文中会对 Danny有比较详细的说
明。
Borland RAD 部门是指Borland 的Rapid Application Development部门,RAD 负责的产品
包含了C++Builder,Delphi,Kylix 以及未来的.NET以及Mobile的新产品。
巅峰之作和最后的胜利者
在Zack 于Delphi 3 发展的后期和Paul Gross逐渐取得了主控权之后,Delphi的发展
方向也偏向了Zack希望的Multi-Tier的科技以及由Paul Gross稍后主导的Borland Golden
Gate 计划。1997 年Delphi 还是像Delphi 1/2 一样以强劲的生命力,以一年一个大版本准
时推出了。当时Delphi 3 也称为Delphi 97。Delphi 97和Delphi 1/2 一样有一个最重要
的战略目标以及主要的革新技术,那就是Multi-Tier 和COM/DCOM 的支持。因此当时97 推
出之际使用的营销术语是“Component Foundry”,意指Delphi 97能够开发任何的组件(事
实上是指VCL,COM/DCOM 以及ActiveX 组件),而且使用组件来开发Multi-Tier 的应用系统。
Delphi3 是笔者认为最好的Delphi 系统,颠峰之作
Delphi 97 无论是在品质,功能或是市场和销售上都是非常成功的。也许是为了证明即
使是没有了Anders,Borland 的Delphi R&D小组仍然有实力开发出优秀的Delphi 产品,因
此Delphi 3 一推出的品质就在高水平,后来Delphi 97 销售的结果也证明了她没有令人失
望,Delphi 3 的推出让Delphi 一举突破了150 万套的大关,也几乎成为Borland有史以来
最畅销的单一系列开发工具,笔者也认为Delphi 3是Delphi 所有版本中最好的一个。
不过Delphi 97 在即将推出之时也令一些人感到忧虑,因为在当时几乎没有任何开发工
具强调Multi-Tier 的开发,大多数的开发工具仍然着重在Client/Server 的功能,因此
Delphi 97 许多新的功能集中在Multi-Tier 的开发的确是一个不小的冒险,因为在当时
Multi-Tier的观念还非常新颖,许多人对于Multi-Tier是什么?能够用来开发什么?为什
么要使用Multi-Tier等问题都不是很清楚。更重要的是在那个时候Multi-Tier 的基础工程
都尚未完全准备好,使用者要如何使用Multi-Tier 技术来开发应用系统,甚至是学习
Multi-Tier的技术?
笔者所谓的“Multi-Tier 的基础工程都尚未完全准备好”是指在那个时候Microsoft
的DCOM 技术都还没有推出,那么Borland要如何在Window平台上提供Multi-Tier 应用系
统需要的分布式技术?说到这里我们也不得不佩服当时Borland 这些DelphiR&D 小组的眼
光,他们几乎已经精确的看到了未来的软件计算世界将会由网络和分布式技术主导,因此即
使是在操作系统平台尚未准备好的情形下,Borland也决定快速向前出发。
另外一个驱使Delphi 97 走向Multi-Tier 的重要的原因便是当时Borland 已经准备走
向组件技术的领域,准备在中介软件(Middle-Tier Software)中成为一个关键的软件开发厂
商,而这就是Paul Gross 和Zack Urlocker激活的Golden Gate Strategy。而Paul Gross
也就是由于Golden Gate 计划扬名立万而成为当时Borland 整个研发部门的副总裁(Vice
President),后来又成为Microsoft 下一个挖角的对象。
为了配合Golden Gate 计划并且成为分布式技术的领导厂商,由Paul Gross 主导并购
了波士顿一家有名的顾问公司,这家顾问公司拥有一个颇具知名的中介软件Entera。Entera
是一个以RPC(Remote Procedure Call) 通讯协议为骨干的中介软件,Borland 希望藉由
Entera 快速进入中介软件的市场。由于Entera 的客户端能够执行在Window 的客户端,因
此Entera 在Window 平台上拥有基础的分布式技术支持能力。这刚好提供了 Delphi 97 需
要的技术,因此Delphi的R&D 小组立刻使用VCL 封装了Entera 的底层API提供了一个称为
OleEnterpriseConnection 的VCL 组件,让Delphi 97能够和以RPC 为基础的中介软件连结。
因此在Delphi 97 中Borland 提供了三种分布式连结组件,分别是使用DCOM 技术的
DCOMConnection,使用TCP/IP技术的SocketConnection以及OleEnterpriseConnection。
在那个时候最成熟的技术应该是OleEnterpriseConnection,而使用DCOM 技术的
DCOMConnection 在Microsoft 本身DCOM 尚不成熟的背景之下,表现得并不好。至于
SocketConnection 笔者认为Borland 一直没有很认真的实践SocketConnection,因此最好
只使用来做为学习的对象,它尚未到达可以真正使用来应用的水准。不过稍后随着时间和技
术的进步,OleEnterpriseConnection 逐渐没落,而DCOMConnection 则反而因为Microsoft
的DCOM 慢慢的改善而成为比较实际的应用对象,当然,这些又是属于Delphi 4的发展故事
了。
虽然Delphi 97 采取了比较冒险的做法,但是由于Delphi 97 的品质良好,又支持
COM/VCL 组件的开发,因此Delphi 97 也很快征服了Delphi 使用者而大获成功。当时许多
Delphi 的使用者仍然是以开发Client/Server 应用系统为主,不过由于Delphi 97 好用的
COM 技术以及应用Web 的WebBroker 技术,再加上Multi-Tier 的功能,都让当时的Delphi
使用者大呼过瘾,做为学习这些先进技术的好工具,Delphi 97 在当时到达了巅峰的地步。
而Delphi/VB 和PowerBuilder/Gupta 缠斗的情形也逐渐明朗,Delphi/VB 的销售量和市场
占有率已经远超过PowerBuilder/Gupta了,PowerBuilder/Gupta也注定将从通用开发工具
以及主从架构开发工具市场中让出绝大的市场。
虽然在其时PowerBuilder 仍然不肯服输,并且坚称PowerBuilder在总收入方面仍然是
第1。这是因为PowerBuilder 在当时仍然非常的昂贵,比Delphi/VB至少贵了2,3 倍以上。
但是在不断的快速流失市场的情形下PowerBuilder 的售价很快就出现了大幅的降价,至此
Delphi 和VB 终于获得了全面的胜利,Client/Server 开发工具的战争已止,但是接下又上
演了另一出精彩的Java 开发工具大战。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2135073
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2149792
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2158989
第三章1请参见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2166978
第三章2请参见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2166990
-----------
本章均由热心网友windknight收集整理
----------------------
第三章3
天才的损失和新英雄的接棒
在Anders和Zack对于Delphi的走向逐渐出现了岐见之后,在Delphi 2.0的后期Anders
便没有主导Delphi 3.0 的发展,反之Zack在Delphi开发小组的角色却日益重要,后来几
乎是Delphi 3 和Delphi4 的主要领导人。为什么Delphi 的Architect Anders 会慢慢地淡
出Delphi 的核心呢?这和Philippe Kahn 的离开也有重要的关系。
英雄落难
Philippe Kahn 和Anders 共同创造了传奇的Borland,两人之间有着浓厚的感情。在
Borland 工作时,对于Anders 任何的想法和计划,Philippe Kahn
都是不遗余力的支持。也正是这个重要的支持力量,才有随后极为成
功的BorlandPascal以及Delphi 的问世。
但是随着Philippe Kahn 离开Borland 之后,Anders 再也没有
这股来自最亲密战友的强力支援。1997 年Borland新的CEO Delbert
Yocam 在掌握了大权之后,Borland 整个公司开始走向第二个重要的
转变,Del 对于Borland 产品的开发和趋势也有了不同于Philippe
Kahn 的看法。当Java 于1996 年逐渐快速发展之后,睿智的Anders
也看到了Java 成功的未来。因此在Anders不再积极参与Delphi 2/3
的开发之后,Anders便非常希望能够主导Borland Java 开发工具的
发展,期望能够像当初的Delphi 1.0一样,为Borland再次开发出全世界顶级的Java开发
工具。
不过由于当时Delphi是Borland 最重要的收入来源,Borland 高层仍然希望Anders继
续在Delphi产品线上投入全力,因此当时的Borland CEO Delbert Yocam 并没有批准Anders
的请求,Borland 的下一个重要的开发工具JBuilder,当时的产品发展名称为Latte,仍然
交由其它小组负责。依据笔者的推想,由于当时Anders对于Java已经有许多的想法,因此
才会有后来的VJ++以及C#,这些产品和程序语言的许多特性想必已经在Anders的脑中存在
了相当长的时间了。
当Del 没有允许Anders 带领Latte 开发小组之后,Anders仍然没有放弃他的新计划,
也许是Anders 注定和Borland 的缘份已经到了尽头,这个时候正好Microsoft 展开了有史
以来对Borland最大的挖角行动。在Anders无法于Borland取得满意的支持之后,Microsoft
提供的优厚条件顿时对Anders产生了致命的吸引力,而造成了Borland无法挽回的遗憾。
虽然Anders没有显赫的学历,无法获得Turning Awards(信息科学界最高荣誉的奖项,
等同于诺贝尔奖)。但是笔者认为Anders 的实力和贡
献绝不输于任何一位Turning Awards 的得奖人,
Anders 是最好的信息实践型人物,在2001 年终于获
得了信息界最具权威的信息刊物Dr.do
bbs’ Journal
颁发的Excel-lent Programming Awards,以表彰
Anders 为信息界做出的卓越贡献。笔者想Anders 应
该是许多本身没有高学历或非计算机信息科系出身的
优秀程序员最好的效法对象。
Hejlsberg,这位不世出的软件天才,笔者认为
Anders 是目前全世界最顶尖的软件技术人员之一。论
实践技术,Anders 可能是目前的第一高手,因为
Anders 精通程序语言,编译器技术,开发工具,
Framework 以及系统架构。笔者虽然知道许多软件界
重要的人物和好手,但是尚不知有任何人能像Anders
一样在这么多领域都能成为大家。下面是笔者整理出Anders Hejlsberg 到目前为止重要的
功绩,贡献以及获颁的重要大奖。
■和Philippe Kahn共同创办Borland
■开发出Turbo Pascal,当时首创的In-Memory Compiler,震惊了全世界
年轻时的Anders,
天分洋溢
Anders Hejlsberg 获得2001年
Dr.Dobbs's Journal的Excellent
Programming Awards
■开发出全世界最畅销的Pascal产品,Turbo Pascal(这是许多信息人员学习Pascal和Data
Structure 使用的经典产品)以及Borland Pascal。Turbo/Borland Pascal合计销售超过了
数百万套。Dr.N.Wirth(Pascal 语言的创始人员)也应该向Anders 致敬,表达Anders 对
于Pascal 语言的贡献
■Anders 使用汇编语言撰写编译器,其功力无人能出其右。创造出了全世界速度最快,品
质也是一流的Pascal 编译器。在Anders 离开了Borland 之后几乎没有人能够修改Anders
的编译器,他造成了开发出影响深远的Delphi这个伟大的RAD工具
■开发出VJ++语言
■Microsoft .NET 的Architect
■Microsoft颁授Microsoft Distinguish Engineer大奖
■发明C#这个又将造成重大影响的语言
■获颁Dr.Dobbs's Journal的Excellent Programming Awards
一个人一生能够做出几件让全世界都津津乐道的事业呢?Anders却成就了无数PC界伟
大的功绩,并且在程序语言,编译器,开发工具以及Framework 方面都有重要的贡献。PC
软件界因为有了Anders而精彩丰富了许多,也创造了许多令人惊叹的故事。更棒的是Anders
现在仍然在继续贡献他惊人的天份,就让我们拭目以待看看Anders 还能创造什么功迹。不
过不管以后如何,相信Anders 应该是大部份软件人员希望能够学习的目标。Anders的功力
也是大部份软件人员一生企望能够达到的境界。
在2002年Borland Developer’ Conference中,Anders Hejlsberg是排名第1的Keynote
Speaker,尚在Java的创始人James Gosling之前。根据现场同时聆听这两场Keynote Speech
的听众的报导,Anders 的Keynote Speech 是非常精彩的,而James 的Keynote Speech 则
相对的枯燥,许多人因此而提前离席。而且Anders在开始进行Keynote Speech之时便获得
了现场所有听众起立鼓掌致敬,看来在大多数Borland 开发工具使用者的心中,Anders
Hejlsberg 是永远的巨星。
Microsoft 挖角和Anders 的离开
Anders 在不介入Delphi 的发展并且无法主导Borland Java 开发工具的开发之后充满
了挫折感,没有了Philippe Kahn的强力支援,Anders 虽然是Borland最顶尖的技术人才,
却也无法对抗Borland管理阶层的力量。当然这也是从Philippe Kahn离开了Borland之后,
Borland 开始转型有关,这在稍后Borland的转变一文中笔者会有详细的说明。
虽然Anders 在Borland 遇到了挫折,但是对于Microsoft 来说这却是千载难逢的好机
会,在此时Microsoft 展开了大规模的挖角行动,而且是明目张胆的进行,正是由于
Microsoft 如此大胆的行动,因此也造成了不久之后Borland 对于Microsoft的法律控诉。
在这次的挖角行动中,Microsoft 同时锁定了数个Borland最杰出或是重要的人物,当
然Anders 是名列第1的挖角对象。时值1996 年,Microsoft终于展开了行动,使用的方式
是最直接的攻击,Microsoft 直接派遣加长型的大轿车到Borland 大门口找Anders 吃饭,
第1 次Microsoft 开出了年薪百万以上的条件,不过在Borland 知道了这件事情之后,
Borland 也很快进行了加码的动作,因此Anders并没有对Microsoft 进行响应。Microsoft
在苦等无应,按捺不住之下,很快就再次用大轿车找Anders。这次Microsoft 提出了2 百
万以上的条件,希望Anders 能够首肯。对于这次的喊价,Borland 可有点为难了,因为2
百万不是笔小数目,这已经比当时Borland 许多副总裁的年薪还高,此外如果Borland 答应
也加到2 百万以上,那么是不是Chuck 也要如此加码?那其它的Delphi R&D 小组要如何调
整?这些都是非常棘手的问题。
不过Borland 很快找到了解决的方案,那就是允许Anders从每一套卖出的Delphi版本
中抽取一定数量的版权费,如此一来Delphi卖得愈好,Anders 便能取得愈多的回馈。不过
就笔者的了解,Anders注重的并不是金钱上的问题,因为在Borland创立的初期由于Turbo
Pascal 的编译器都是Anders撰写的,因此当时Anders也是卖一套Turbo Pascal 就可以抽
取版税的,依照Turbo/Borland Pascal全世界销售数百万套来算,Anders 早就是富翁了,
薪水多一点,少一点并无所谓,Anders心中想的是自由发展的空间。在Borland提出了Delphi
的随版抽税,再加上Microsoft并不知道Anders真正想要的东西,因此Anders仍然没有响
应Microsoft 提出的优厚条件。
不过Anders实在是太重要的人物,而且Microsoft 在面对Java 日益俱增的威胁下,非
常渴望能够有像Anders 这样的人才带领Microsoft 发展下一代的开发工具,这当然也是由
于Microsoft 从以前向Borland挖来的人都做出了不小的贡献所致。Microsoft食髓知味,
当然希望能够得到Borland 的镇山之宝。在Anders 两次不为所动之后,Microsoft 决定祭
出最后的王牌,由Bill Gates亲自找Anders吃饭,进行最终的挖角行动。
不管读者喜不喜欢Bill Gates,但不可否认的是Bill也是一个天才。自古英雄惜英雄,
在Anders和Bill相谈甚欢的情形下,Microsoft开出了年薪3百万以上,数万股的Microsoft
股票。这个超高的条件,再以当时Microsoft 高贵的股价来计算,真是一笔庞大的数字,也
许对于搞软件技术的人来说,这已经是不可能的天文数字了。不过这些条件并不是打动
Anders 的主要原因,Bill 最后提出的条件是“答应给Anders 一个小组和极多的资源,让
Anders 尽情的发挥”。这个条件可说是打到了Anders的心底,因为Anders正渴望有人能够
支持他完成新的计划和想法。笔者想,在软件产业中大概也只有Microsoft能够拥有这种雄
厚的资源可以挖角任何人吧。
在Bill Gates 提了这样的条件之后,Borland 再也没有本钱能够和Microsoft 进行比
价了,只好眼睁睁的看着Anders 离开Borland 前往Microsoft再开创下一个人生的高峰。
在Anders 到了Microsoft 之后,Bill Gates 果然重用Anders,也立刻让Anders负责激活
Microsoft 的下一波开发工具计划,当然这个计划也是Microsoft 对抗SUN/Java 的整体计
划之一。Anders 到了Microsoft 之后立刻展现了实力,让Microsoft 的编译器技术又精进
不少,最明显的例子就是Microsoft 后期的Java Virtual Machine是PC 上执行效率最好的,
而在2,3 年后VJ++推出之际其编译出来的虚拟机械码的执行效率不但比任何的Java 开发
工具还快,在某些方面甚至比原生的Window开发工具,例如Delphi,VB,甚至是VC++还有
效率。这真是令人震撼,当然Anders 为VJ++打下的基础现在也展现在.NET 的C#编译器以
及.NET 的JIT(Just In Time)编译器之上,.NET的JIT在许多程序代码最佳化方面比Delphi
还先进。因此在2,3 年前当VJ++即将推出之际,在Borland 内部也引起了一阵骚动,并且
严阵以待,当然这又是另外一个故事了。
对于Anders 来说,到了Microsoft 之后不久又再次登上了生涯的另一个巅峰。因为当
初Anders 在Borland之时就有如孙子兵法中叙述的“藏于九地之下”,虽然是不世出的天才,
但是仅为少数的人所知,即使是使用Borland 产品的人在当时可能也不知道Anders这号人
物,因为Anders和Borland的风格很像,都是行事低调,不到最后绝不随意出手。但是Anders
被挖角到Microsoft之后,由于Microsoft的企业文化向来是前进、积极的侵略性方式,因
此Anders 也就转变为“动于九天之上”,负责Microsoft开发工具大军的核心大将,不但广
为人知,成为许多软件人员效法的对象,而且屡获大奖,不但获得了信息软件业界的推崇,
最后也终于获得了信息学术界的认可,可说是实至名归。
Anders 的离开对于Borland 来说是一个很大的损失,不过对于Delphi R&D 小组来说却
是有好有坏,因为Delphi 开发小组虽然失去了最重要的支柱,但是却也给Danny Thorpe
一个快速掘起的机会,在1 年后Danny 果然立刻成为了Delphi/C++Builder/Kylix中最杰出
的人物之一(另一个当然就是Anders 的老搭挡ChuckJazdzewski了),也是笔者认为目前在
Borland RAD(注)部门中功力最厉害的人物。在稍后的内文中会对 Danny有比较详细的说
明。
Borland RAD 部门是指Borland 的Rapid Application Development部门,RAD 负责的产品
包含了C++Builder,Delphi,Kylix 以及未来的.NET以及Mobile的新产品。
巅峰之作和最后的胜利者
在Zack 于Delphi 3 发展的后期和Paul Gross逐渐取得了主控权之后,Delphi的发展
方向也偏向了Zack希望的Multi-Tier的科技以及由Paul Gross稍后主导的Borland Golden
Gate 计划。1997 年Delphi 还是像Delphi 1/2 一样以强劲的生命力,以一年一个大版本准
时推出了。当时Delphi 3 也称为Delphi 97。Delphi 97和Delphi 1/2 一样有一个最重要
的战略目标以及主要的革新技术,那就是Multi-Tier 和COM/DCOM 的支持。因此当时97 推
出之际使用的营销术语是“Component Foundry”,意指Delphi 97能够开发任何的组件(事
实上是指VCL,COM/DCOM 以及ActiveX 组件),而且使用组件来开发Multi-Tier 的应用系统。
Delphi3 是笔者认为最好的Delphi 系统,颠峰之作
Delphi 97 无论是在品质,功能或是市场和销售上都是非常成功的。也许是为了证明即
使是没有了Anders,Borland 的Delphi R&D小组仍然有实力开发出优秀的Delphi 产品,因
此Delphi 3 一推出的品质就在高水平,后来Delphi 97 销售的结果也证明了她没有令人失
望,Delphi 3 的推出让Delphi 一举突破了150 万套的大关,也几乎成为Borland有史以来
最畅销的单一系列开发工具,笔者也认为Delphi 3是Delphi 所有版本中最好的一个。
不过Delphi 97 在即将推出之时也令一些人感到忧虑,因为在当时几乎没有任何开发工
具强调Multi-Tier 的开发,大多数的开发工具仍然着重在Client/Server 的功能,因此
Delphi 97 许多新的功能集中在Multi-Tier 的开发的确是一个不小的冒险,因为在当时
Multi-Tier的观念还非常新颖,许多人对于Multi-Tier是什么?能够用来开发什么?为什
么要使用Multi-Tier等问题都不是很清楚。更重要的是在那个时候Multi-Tier 的基础工程
都尚未完全准备好,使用者要如何使用Multi-Tier 技术来开发应用系统,甚至是学习
Multi-Tier的技术?
笔者所谓的“Multi-Tier 的基础工程都尚未完全准备好”是指在那个时候Microsoft
的DCOM 技术都还没有推出,那么Borland要如何在Window平台上提供Multi-Tier 应用系
统需要的分布式技术?说到这里我们也不得不佩服当时Borland 这些DelphiR&D 小组的眼
光,他们几乎已经精确的看到了未来的软件计算世界将会由网络和分布式技术主导,因此即
使是在操作系统平台尚未准备好的情形下,Borland也决定快速向前出发。
另外一个驱使Delphi 97 走向Multi-Tier 的重要的原因便是当时Borland 已经准备走
向组件技术的领域,准备在中介软件(Middle-Tier Software)中成为一个关键的软件开发厂
商,而这就是Paul Gross 和Zack Urlocker激活的Golden Gate Strategy。而Paul Gross
也就是由于Golden Gate 计划扬名立万而成为当时Borland 整个研发部门的副总裁(Vice
President),后来又成为Microsoft 下一个挖角的对象。
为了配合Golden Gate 计划并且成为分布式技术的领导厂商,由Paul Gross 主导并购
了波士顿一家有名的顾问公司,这家顾问公司拥有一个颇具知名的中介软件Entera。Entera
是一个以RPC(Remote Procedure Call) 通讯协议为骨干的中介软件,Borland 希望藉由
Entera 快速进入中介软件的市场。由于Entera 的客户端能够执行在Window 的客户端,因
此Entera 在Window 平台上拥有基础的分布式技术支持能力。这刚好提供了 Delphi 97 需
要的技术,因此Delphi的R&D 小组立刻使用VCL 封装了Entera 的底层API提供了一个称为
OleEnterpriseConnection 的VCL 组件,让Delphi 97能够和以RPC 为基础的中介软件连结。
因此在Delphi 97 中Borland 提供了三种分布式连结组件,分别是使用DCOM 技术的
DCOMConnection,使用TCP/IP技术的SocketConnection以及OleEnterpriseConnection。
在那个时候最成熟的技术应该是OleEnterpriseConnection,而使用DCOM 技术的
DCOMConnection 在Microsoft 本身DCOM 尚不成熟的背景之下,表现得并不好。至于
SocketConnection 笔者认为Borland 一直没有很认真的实践SocketConnection,因此最好
只使用来做为学习的对象,它尚未到达可以真正使用来应用的水准。不过稍后随着时间和技
术的进步,OleEnterpriseConnection 逐渐没落,而DCOMConnection 则反而因为Microsoft
的DCOM 慢慢的改善而成为比较实际的应用对象,当然,这些又是属于Delphi 4的发展故事
了。
虽然Delphi 97 采取了比较冒险的做法,但是由于Delphi 97 的品质良好,又支持
COM/VCL 组件的开发,因此Delphi 97 也很快征服了Delphi 使用者而大获成功。当时许多
Delphi 的使用者仍然是以开发Client/Server 应用系统为主,不过由于Delphi 97 好用的
COM 技术以及应用Web 的WebBroker 技术,再加上Multi-Tier 的功能,都让当时的Delphi
使用者大呼过瘾,做为学习这些先进技术的好工具,Delphi 97 在当时到达了巅峰的地步。
而Delphi/VB 和PowerBuilder/Gupta 缠斗的情形也逐渐明朗,Delphi/VB 的销售量和市场
占有率已经远超过PowerBuilder/Gupta了,PowerBuilder/Gupta也注定将从通用开发工具
以及主从架构开发工具市场中让出绝大的市场。
虽然在其时PowerBuilder 仍然不肯服输,并且坚称PowerBuilder在总收入方面仍然是
第1。这是因为PowerBuilder 在当时仍然非常的昂贵,比Delphi/VB至少贵了2,3 倍以上。
但是在不断的快速流失市场的情形下PowerBuilder 的售价很快就出现了大幅的降价,至此
Delphi 和VB 终于获得了全面的胜利,Client/Server 开发工具的战争已止,但是接下又上
演了另一出精彩的Java 开发工具大战。