立刻向总公司反应。我也老实地告诉她,在问题没有解决之前,我无法写一些不确实
的东西。后来台湾Borland的总经理方先生也找我去询问有关Optima++的事情,我告
诉他Optima++是好东西,但是中文有问题。如果中文问题能够解决,那么将对Borland
和Microsoft的产品有很大的影响,当时我还不知道Borland由于Optima++的影响,已
经开始准备开发C++Builder。
在1996年底左右吧,Optima++1。5终于进入Beta的阶段。但是在我拿到Beta版时非常
失望,因为中文的问题仍然没有解决。后来台湾Sybase又找我去,这次和我见面的是
台湾Sybase总经理郭俊男先生,以及Sybase的新加坡技术总裁,不过我忘记这位先生
的名字了。见了面之后,我立刻把Optima++1。5中文的问题以及许多的臭虫告诉他们,
希望他们能够解决,如此Optima++1。5才能够在中文市场成功。可是出乎我意料之外的
是,他们似乎并不着急这些问题,反而询问我是否有意愿为Sybase工作,做PowerBuilder
的产品经理。
也许是因为我为Delphi写了太多的东西,让PowerBuilder在台湾受了很大的影响,因
此他们希望我到Sybase工作,以打击Delphi并且Promote PowerBuilder。当时他们提
出的待遇条件实在是非常、非常的诱人,比我当时的薪水高出一倍左右(我当时在资
策会工作)。不过由于我对PowerBuilder实在没有什么兴趣,因此我告诉他们,如果
是做Optima++的产品经理,那么我将会考虑并且接受。
没有想到,Sybase的新加坡技术总裁告诉我Optima++在1。5推出之后就可能会停止,
因为Sybase要把资源移去为当时愈来愈红的Java研发一个新的Java RAD开发工具,那
就是后来的PowerJ。于是他询问我如果不愿意做PowerBuilder的产品经理,那么是不
是愿意做PowerJ的产品经理?由于当时我已经知道Borland开始了Open JBuilder的研
发,而我对Open JBuilder的兴趣远大于PowerJ,因此没有答应Sybase。果然,在
Optima++1。5推出之后,不但中文的问题没有解决,Sybase之后也没有继续对Optima++
研发下去。
Optima++一个如此有潜力的产品就这样消失了,真是令人遗憾。Optima++应该有很好
的机会可以成功的。我相信,如果当时Sybase知道C++Builder后来的成果,可能就不
会放弃Optima++了,而C/C++的RAD工具一直要到后来的C++Builder来完成这个梦。
C/C++的开发工具之争到此算是告一段落了,虽然后来Borland继续推出了Borland
C/C++5。0,但是品质仍然不够好,市场反应也不佳。后来Borland终于在Borland
C/C++5。02之后宣布停止此条产品线的开发,Borland C/C++的光荣历史也就从此打住,
真是令人不胜感叹,而Visual C/C++从此在C/C++开发工具市场中再也没有对手。不
过没有竞争的市场的确会让人松懈,后来的Visual C/C++进步的幅度愈来愈小,MFC
也数年没有什么大进步,不像当时和Borland C/C++竞争时每一个版本都有大幅的改
善。看来寡占的市场的确是不好的。
^v^v^v^v^v^v^v^v^v
第三章 传奇的开始Delphi
〃是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的
Borland!〃
〃是Turbo Pascal诞生了Borland,但却是Object Pascal给予了Borland重生的机会!〃
创造传奇故事的主角Delphi
没有人会知道在两年后Borland C/C++会遭遇到这么大的失败,也没有人会预料到
Borland又会再次因为Pascal而东山再起。Borland奋斗史精彩的地方就在于每当似乎
要不支倒地之际,Borland的R&D人员就会创造出一个明星级的产品来拯救Borland。
在其他和Microsoft对抗的软件公司纷纷消失的时候,Borland却一次又一次地站了起
来。〃打不死的勇者〃这句话贴切地形容了Borland的韧性。Borland靠Pascal起家,通
过C/C++绽放光芒,进而达到了巅峰的状态,随后又再次靠着Pascal浴火重生。Borland
这个从C/C++跌倒,再通过明星工具Delphi重回战场的过程可以说是惊心动魄,其中更
牵涉到了Borland两位创始人Philippe Kahn以及Anders Hejlsberg相继离开Borland
的密闻,也激活了Borland逐渐转型的历史轮轴。对于Borland来说,这段发展史可以
算是非常关键的里程碑,更重要的是,Delphi的崛起也在软件工具业界产生了巨大的
影响。Delphi不但激活了Windows平台上RAD战争的序幕,开启了Windows平台主从架
构的改变,同时也对组件技术做出了巨大的贡献。直到现在,Delphi创造的组件技术
仍然深深地影响了JavaBeans以及的组件思想和技术,这在稍后的内文中读者可
以逐渐地了解。而故事的起源便在1993年左右……
Delphi的发展起源
当Borland以Turbo Pascal获得了成功,并且令Charles Petzold等人跌破眼镜之后,
到了1992/1993年的Borland Pascal 7。x,Borland似乎已经把传统的Pascal开发工具
发展到了极限,再往下还能做什么呢?Borland Pascal在销售了数百万套之后,程序
语言的焦点已经从Pascal转移到了C/C++,Borland Pascal无法继续快速成长,进而
转入了递减的状况,Borland必须做些新的东西才能够延续这条产品线。
当时Borland Pascal产品的Architect,即Anders Hejlsberg,眼看Microsoft Visual
Basic的成功,觉得当时Visual Basic是比较初级的开发工具,是一个学习Windows
程序设计的好工具,但是尚无开发真正应用系统的能力。因此,Anders和Borland
Pascal的小组决定展开一个规模前所未有的项目计划,这个开发工具项目在一开始便
设定了数个目标,希望能够达成并且超越Visual Basic。这些初始的目标是:
● 延续Borland Pascal的传统,提供一个快速编译的开发环境
■ Borland/Turbo Pascal的高明之处便是由Anders使用汇编语言撰写的Pascal
编译器不但编译快速,而且能够产出极为有效率的机器码。当时的Visual Basic只是
解译器(Interpreter),无法产生真正的执行机器码,因此在这一方面Borland决定要
远远地超过VB,但是Borland的挑战是要开发出一个编译速度能够媲美解译器速度的
新一代编译器。
■ Anders另外一个重要的决定便是改善Borland Pascal程序语言,让这个新的
开发工具程序语言具备面向对象的功能。这在当时是非常重要的决定,因为不但需要
大幅修改编译器,也正式将Borland Pascal超越Pascal之父对Pascal定义的结构,让
Pascal拥有现代语言最新的功能。虽然这个决定有很大的因素是因为Borland决定通过
面向对象的方式建立新一代的Framework和组件架构,因此需要程序语言方面的支持。
不过,这在当时整个信息界对于面向对象技术还很陌生的阶段,的确是一个很大胆的
决策。这个程序语言的决策虽然可以吸引专业人士的激赏,不过也可能会让许多程序
员无法跨越这个障碍。后来的发展也证明了这一点。
● 建立一个新的Windows Framework组件架构
■ 当时VB使用的组件是VBX。不过VBX架构非常的复杂,只能使用在16位的环境,
并且在可视化拖曳设计方面又不是很方便。因此Borland希望在OWL之后建立一个全新
的Framework,这个Framework能够让程序员快速开发Windows应用程序,并且完整地封
装Windows操作系统中的对象。此外,Borland也希望定义一个标准的组件架构,让使
用这个开发工具的程序员能够通过Framework和组件架构来开发各种组件,包括可视
化和非可视化组件。这个Framework就是后来的VCL(Visual ponent Library)。在
这方面,Borland做得非常成功。如果各位读者有VBX的经验,就会知道当时,Microsoft
定义的VBX规格简直是一团混乱,根本像是拼凑出来的东西。在当时开发VBX组件痛苦
不堪,后来Microsoft也彻底放弃了VBX。
● 拖曳、可视化的开发环境
■ Borland的想法是开发一个全新的集成开发环境,在这个开发环境中程序员可
以使用可视化的方法拖曳Framework的组件来设计图形界面,再在其中的编辑器中使用
面向对象程序语言来撰写应用程序。
这个开发工具项目的名称就是:Delphi!
Delphi的核心成员
在Delphi决定开工之后,Philippe Kahn还不放心动用太多的资源来开发这个产品,
因为当时Borland正集中所有的资源,希望能够打赢C/C++开发工具一役。因此
Philippe Kahn一开始只答应拨给Anders四个开发人员,先进行产品雏型的开发工作。
因此,Delphi在当时被笑称为像Apple计算机一样,是在地下室开发的。
当时加入Delphi开发小组的当然就包含了Anders,第二人是Chuck Jazdzewski。其中
Anders负责撰写新的Object Pascal编译器以及核心程序,而Chuck则负责设计Delphi
使用的组件Framework,即VCL。在经过了6个月的初始雏型阶段之后,当Anders把开
发的结果呈现给Philippe Kahn看时,Philippe立刻被它所吸引。因为当时在Borland
内部也希望为Borland C/C++开发一个类似这样能够以可视化拖曳方式开发应用系统
的C/C++开发工具。没有想到在短短不到一年的时间内,Anders已经从基本的构想开
发出了雏型产品。于是Philippe马上批准了这个产品的开发计划,并且投入研发资源。
许多后来举足轻重的人才便是从开发Delphi项目培养出来的。当时在这个项目中,各个
重要的部分分别由下面的重要人员负责:
● Anders Hejlsberg:编译器,Object Pascal程序语言,产品架构
● Chuck Jazdzewski:Framework,组件架构设计/实现
● Allen Bauer:集成开发环境的开发工具,Open Tools API
● Danny Thorpe:RTL (Run…Time Library)
● Zack Urlocker:产品开发方向,产品规划
有兴趣的读者可以打开下面的链接,这篇文章是由Danny Thorpe(现在是Borland
的Architect)撰写的,详细地说明了Delphi这个名称的由来以及开发的缘由。
munity。borland/article/0;1410;20396;00。html
而批准Delphi的开发,则是Philippe Kahn在因为Borland营运不佳而辞去Borland CEO
之前做出的最重要而且正确的决策。没有Philippe Kahn的同意,便不会有两三年后
浴火重生的Borland。
大规模的开发行动和Philippe Kahn的下台
在Borland如火如荼地进行C/C++最后决战的同时,Delphi也在快速的开发之中。1994
下半年,Delphi 1。0几乎已经开发完毕,最后剩下的工作就是Beta测试的阶段。同年,
Borland决定为Delphi展开一项从未进行的尝试计划,因为Borland对于Delphi信心