开的工作除了整顿Delbert在位时形成的庞大无用的行销部门之外,在产品线方面则
是看好Linux的未来,要求Borland的RAD部门必须开发出Linux下的RAD工具。
在Danny接掌了Delphi主要的开发责任之后,又和Chuck一起再次形成中坚的RAD精英
份子。Chuck主要负责新技术和新构想的实验作品,而Danny则是负责困难的编译技术
以及RTL。由于Turbo/Borland Pascal以及Delphi的最佳化编译器都是Anders
Hejlsberg撰写的,因此当Anders离开Borland之后几乎没有人能够维护编译器程序代
码。Anders都是使用汇编语言(Assembly)撰写复杂的编译器程序代码,而且其品质是
如此之好,不但连Chuck Jazdzewski都赞不绝口,更麻烦的是当时Borland几乎没有
工程师敢随便更动这些程序代码。
因此在Anders Hejlsberg于Delphi 2离开了Borland之后,Borland立刻采取了数项行
动希望能够解决这个〃烫手山芋〃。Borland决定的第一件事情是从Delphi的编译器抽
离大部分最佳化的工作。因为要在Anders的程序代码再继续加入最佳化程序代码是
Borland当时没有把握的事情。另外,由于当时Borland已经决定开发C++Builder,
而C++Builder也需要一个最佳化的编译器,因此,Borland认为如果能够提供一个共
同的后端最佳化编译器,那么Delphi和C++Builder不仅都可以使用,还能够解决没有
人敢修改Delphi编译器的问题。这个决定就是后来Delphi 3以及C++Builder 2推出之
后Borland宣称的〃Delphi和C++Builder可使用共同的后端最佳化编译器〃,这个工作
当时是交由Borland的编译器小组Lee他们负责的。
不过共同的最佳化编译器只解决了一半的问题,对于Object Pascal语言本身的改善
仍然需要能够修改Anders撰写的编译器,那么到底谁能够进行这个工作呢?答案当然
就是另外一个软件天才Danny Thorpe了。Danny在接手Delphi的开发大任之后,就
开始为已经停止开发一段时间的Object Pascal语言本身进行演进的工作。此外,
Danny也开始为Delphi底层的RTL进行改造,并且为Delphi的编译器加入更多最佳化的
功能。
Danny之所以同时在ObjectPascal程序语言、Delphi RTL以及Delphi编译器进行渐进
的改善工作,是有许多因素影响的。首先,当然是为了接下Anders留下的工作,另外
一个原因是在Delphi 3之后,必须再次对于的支持进行强化。最后,是为下在
Delphi 4之后,准备把Delphi移植到Linux上。事实上,Borland在Delphi的R&D小组中曾经
一度准备把Delphi和C++Builder移植到SUN的作业平台上,这是为了因应Delbert和SUN
合并时进行的准备工作。甚至Delphi的R&D小组认为,既然要开发跨平台的Delphi和
C++Builder,那么不如把Apple的Macintosh操作系统也纳入考虑。Delphi的R&D小组
在当时甚至已经列出了开发SUN和Macintosh平台的时间表,但是稍后随着和SUN合并
计划的破灭以及Delbert的下台,这个跨平台的Delphi计划也就暂停了。一直等到Dale
Fuller上台强力要求开发Linux平台的RAD工具之后,Delphi的R&D小组才再次激活跨
平台的计划。
为了支持更好的开发能力,Danny修改了Delphi的编译器,直接支持接口的参
考计数值(Reference Count)的维护工作,以免除开发者繁杂的程序代码,提供了类
似Visual Basic的能力。同时Danny也在Object Pascal程序语言本身中加入接口
(Interface)的机制,让Object Pascal和Java一样对接口程序设计都提供First Class
的支持。Danny并且更进一步,巧妙地结合的接口以及Object Pascal程序语言的接
口,让Delphi的程序员更方便地使用和处理接口。Danny的这些努力,就是Delphi
的使用者在Delphi 3之后逐渐在Object Pascal中看到的Interface机制。对于非常熟
悉Delphi的读者来说,应该可以发现Delphi 1/2中Object Pascal变化的部分很少,
但是从Delphi 3之后,每一新版的Delphi在Object Pascal程序语言本身都有进步,
这些都是Danny所做的努力。
在RTL方面,Danny更是投注了大量的心血,Danny的第一步是去芜存菁。Delphi经过
了三、四年的发展,许多RTL中的程序代码不是过时,就是需要进行最佳化的调整。
因此从Delphi 4开始,Danny便逐渐整理和改善Delphi的RTL,这方面的成果从
Delphi 5之后便逐渐显露出来,Delphi的RTL不但在效率方面有了进步,更提供了愈
来愈多以前版本的Delphi所没有的功能。当然,Danny在Delphi RTL方面最大的贡献
是改善RTL成为跨平台的基础。Danny维护后的Delphi RTL最后也成功地移植到了Linux
平台上,并且克服了许多Windows以及Linux平台差异处的困难。当然,Danny Thorpe
和Chuck Jazdzewski是Kylix得以推出的最重要的功臣之一。为了解决Kylix在Linux
平台上许多的技术问题,后来还引起了Linux开发者社群围攻Danny Thorpe的精彩大
戏,最后导致Danny Thorpe不再管Kylix的开发而全力投入的阵营,这当然又是
另外一个极为精彩的故事了。
对于Danny来说,只有一个最重要的目标,那就是再次擦亮Delphi的光芒,让Delphi 4
的失败能够在下一个版本中一雪前耻,并且把Delphi开发成最棒的RAD开发工具。Danny
的决心也让Delphi R&D小组再次安定了军心,在历经了Delbert错误的决策、Microsoft
大幅的挖角、Delphi 4的失利之后,Danny带领了一些新的Borland工程师展开了艰苦
的工作。
Danny的杰出表现早已深获许多人的赞扬和肯定,也充分地展现了继Anders Hejlsberg
之后,Borland另外视为宝贝的天才的风采。现在,Danny不但早已独当一面,更成为
了Borland 的Architect,负责综合整理Borland未来在上的开发工具。在2002
年Borland的Conference上,Danny正式由Borland的CEO Dale Fuller先生颁发
Borland President Awards大奖,这是继Chuck Jazdzewski、Blake Stone之后,
Borland第3个获得最高殊荣的R&D人员。在Danny接受大奖之时,现场所有的BorCon参
加人员都起立热烈鼓掌,看来,即使在Borland没有颁发这奖项之前,Danny早已被所
有了解他的贡献的人所肯定和钦佩,这只是一个迟来的奖项而已。
我曾在1999年费城的BorCon见到了Danny,并且在澳洲举行的BorCon和他有简短的对
话。Danny的身材不算高大,瘦瘦的,但是非常的温文尔雅。和Danny讲话是一件很舒
服的事情,因为你可以问他许多技术的问题,只要Danny有时间,他会很乐意和你讨
论的。
恭喜Danny!Borland又为PC软件界培养了一个天才和明星。我相信Danny Thorpe也将
成为许多开发者学习的对象,当然也包括我在内。
和对Anders Hejlsberg一样,最后再让我整理一下Danny Thorpe对于Borland和产品
线重要贡献和获得的殊荣,让读者也能对这位值得尊敬的软件开发人员致敬:
〃 负责开发Delphi RTL/编译器困难的工作
〃 改善Object Pascal程序语言,加入现代语言元素Interface
〃 开发出Kylix并且解决Linux平台的臭虫
〃 1999年被Borland内部评选为全Borland最重要的50人之一,是Borland不可放弃的
人才
〃 2001年荣升Borland Architect
〃 负责开发Borland 下一代整合开发工具Galileo
〃 和Chuck Jazdzewski共同开发代号为Charlotte的下一代Web Service程序语言
〃 2002年于BorCon获Borland President's Awards大奖殊荣
对于我来说,Borland孕育了无数的伟大软件工程师,当然有一些人我无缘认识,因
此对于这些人,我只能说是〃久仰大名〃,例如Windows平台的系统和除错大师Matt
Pietrek。但是有一些人却是我认识、甚至有过对话的。这些人每一个都令我折服,
也让我向往这些伟大软件工程师到达的境界,他们是:
〃 Borland C/C++、dBuilder的Framework大将Carl Quinn
〃 不世出的软件天才Anders Hejlsberg
〃 Borland首席科学家Chuck Jazdzewski
〃 Borland RAD核心支柱Danny Thorpe
当然,还有本书稍后会叙及的Java天才,Mr。 Blake Stone。
重回基本的精致之作Delphi 5
1999年8月,距离Delphi 4推出将近一年之后,由Danny领军的Delphi 5终于准备推出
了,这次没有CEO不合理的要求,Borland又投入了适当的资源,再加上Danny和
Delphi R&D小组的全心开发,Delphi的开发步调又回到了以往的轨道。在Danny
Thorpe的细心和坚持之下,Delphi 5在推出时的完成度是非常高的。
注:Borland的每一个产品在推出之前都会进行完成度测试和评估,这和其他的软件
是一样的。每一个产品在完成度到达多少才推出是不一定的,一般来说在85%以上就
是不错的产品,低于80%就推出的产品则等于是推出Beta版的软件,品质一定不好。
当Delphi 5推出到市场之后,其品质果然又受到了Delphi使用者的喜爱,销售数字也
证明Delphi 5已经成功地扫除了Delphi 4时埋下的阴影。再加上当年的JBuilder 3又
迈入了一个全新里程,打造成了一个完全由Java撰写的Java开发工具,因而大获市场
肯定,进而正式为Borland在Java市场带来了空前的胜利和大量的收入。Borland又开
始产生盈余了,Delphi和JBuilder从1999年开始也正式成为了Borland的两大摇钱树。
不过Delphi 5虽然成功,但是从销售数字来看,Delphi的销售几乎已经到了顶峰,不
易再高度成长并且带来更多的收入,这从其他Windows传统开发工具的情形也可以看
得出来。所以对于Borland来说,应该要开始为Delphi准备下一代的功能和平台了,
重新设计Delphi的所有功能和GUI接口,再次地演进Delphi的风貌。即使Delphi也和
Visual Basic、PowerBuilder一样即将走入下一代的开发环境,但是Borland仍然有
责任在世代交替之间提供Delphi使用者顺利的移植方案。可以很明显地看到,
Delphi 6提供了Web Service功能让以前和未来的应用程序能够相互整合,Delphi 7
则将提供Microsoft 平台开发的功能。Delphi 6和Delphi 7即是为Delphi的开发
者走向未来提供的垫脚石。
Delphi 5应该是Delphi 3之后最好的一个Delphi版本,称为Windows平台下最好的RAD
开发工具是当之无愧的。虽然Borland RAD小组持续的开发最好的Windows开发工具,
但是在Windows平台上的开发模式却已经悄悄地进行了自DOS以来最大的改变,那就是
Microsoft为了因应Java的攻势而展开的 计划。Windows平台上的开发概念、开
发工具和开发技术即将揭开新的序幕,Microsoft也准备逐步淘汰原