转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
第三章 传奇的开始--Delphi         ★★★★

第三章 传奇的开始--Delphi

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3196 更新时间:2009/4/23 18:27:02

年重要的信息架构,因此VB 4.0开始,Microsoft也开始逐渐为VB加入更多开发数据库
以及主从架构的能力,并且搭配Microsoft的ODBC规格向主从架构市场进攻。

Anders在Delphi 1.0成功之后,曾经接受媒体的访问,叙述他心中的Delphi 2.0想做
的功能。当时Anders就说他希望为Delphi加入Garbage Collection的功能,因为
Object Pascal在建立对象方面是使用Heap-Based的方式,因此为了减少Delphi程序员
可能发生的错误并简化Delphi程序代码的撰写,他希望加入Garbage Collection。现
在的Microsoft的.NET就内建了Garbage Collection的功能,而这个想法在7年前便已
经存在于Anders的脑中了。

除了Garbage Collection之外,Anders也想为Delphi加入更多Stack-Based的能力(是
巧合吗?.NET的IL也是Stack-Based的语言),并且持续地改善Delphi的编译器,加入
更多的编译器最佳化功能,让Delphi的程序代码执行速度能够超越C/C++。

从Anders的想法中,读者应该可以感觉到Anders想做的都是属于比较语言、系统和低
阶方面、影响层面较大的功能。但是,由于信息市场是逐渐走向主从架构,因此
Zack Urlocker等人则希望Delphi 2.0能够在主从架构方面进行大幅的强化,再搭配
Borland力倡的BDE/IDAPI技术,以便和PowerBuilder/Gupta等竞争,进入获利较为丰
富的工具市场,这是第一次Anders和Zack意见分歧的时间点。

后来Delphi研发小组达成了共识,那就是下一个版本的Delphi将由Anders在编译器方
面主导,为Delphi开发一个真正的32位编译器,而且具备最佳化的功能(因为
Delphi 1.0是16位的开发工具)。但是Delphi 2.0也将大幅加入主从架构的功能,并且
通过BDE/IDAPI提供连接各种RDBMS的驱动程序,再由Chuck改善VCL架构,提供更为强
劲的数据感知组件能力,让Delphi 2.0正式具备和PowerBuilder/Gupta竞争的本钱。
这也埋下了日后PowerBuilder/Gupta这两个工具备受VB和Delphi强大的压力、终至快
速衰退的命运。

由于Delphi 2.0开始确定走向主从架构和具备开发大型系统能力的方向,因此Anders
没有多余的资源可以实现他的理想,再加上和Zack在产品发展方面日渐出现歧见,这
些都是间接造成日后Anders离开Borland的因素。

Delphi 2.0,进入32位世界的开发工具

在Anders完成了Delphi 32位的编译器而且BDE/IDAPI小组也实现更多连接RDBMS的驱
动程序之后,Delphi 2.0便已经准备好出征了。Delphi 2.0在推出之后果然也非常成
功,Anders亲手打造的32位编译器不但编译速度奇快,编译出的应用程序品质更是无
话可说。在当时,Delphi 2.0产生的执行程序代码屡获专业媒体和实验室的评比大奖,
尤其在整数运算方面,更是比VC++执行得还好。在一般应用程序方面,也和VC++的
程序代码不相上下。整体来说,只有在浮点数方面落后VC++。这也是后来Borland编
译器小组和Anders激活Borland下一代编译器项目的原因之一,目的是为C++Builder
和Delphi开发一个共享的后端最佳化编译器。不过很可惜的是,Anders稍后离开了
Borland,没有参与完成这个最佳化编译器,否则Borland的编译器应该会比现在更具
威力。

Delphi 2.0如同Delphi l.0一样大获成功,因为当时许多想在Windows NT下开发纯32
位应用系统的程序员都愿意使用Delphi 2.0,更不用说一些企业的开发者,在不愿意
忍受PowerBuilder/Gupta等使用脚本语言执行应用程序的缓慢情形下,许多
PowerBuilder/Gupta使用者都转而使用Borland的Delphi,这是Borland继当初
Borland C/C++3.1之后再次打入企业市场。Delphi 2.0和Delphi 1.0的总销量也超过
了一百万套。在全球的市场中,Delphi在欧洲、亚洲和中南美洲都非常的成功,反而
在北美的市场表现平平。由于Delphi表现得非常抢眼,给予了VB和PowerBuilder巨大
的压力,因此Microsoft和Sybase在Delphi 2.0推出之后,也纷纷地准备推出VB 5.0和
PowerBuilder 6.0,正式揭开了RAD工具最后的生死战。

在Delphi 2.0顺利推出之后,很不幸的是Lance也离开了Borland。接手Delphi产品
经理的是Ben Riga。要怎么说这位加拿大的仁兄呢?Ben Riga也是很亲切的人,但是
我当时向他建议的许多Delphi发展方向,这位仁兄都没有反映在Delphi的产品中。

例如我在3.0时便强烈建议Delphi应该在Web方面投入更多的努力,在Delphi中实现类
似当时IntraBuilder的能力,提供可视化的方式开发Web应用系统,也就是像现今的
Developer Express的ExpressWeb Objects组件组,或是IntraWeb组件组。如果在当
时的Delphi 3或是Delphi 4便能够有这种组件组,那么Delphi的Web能力将是No.1,
更不用说对于Delphi的销量会有多大的帮助。可惜笔者人微言轻,Ben并没有把这个
重要的功能放人Delphi的产品开发规格中。一直到现在,Delphi 6/7才认真地考虑这
个需要,虽然时间已经晚了,但是如果真的做得好的话,也比没有好。

RAD殊死战

在Delphi和VB相继进入主从架构的世界之后,便和PowerBuilder有了更激烈的竞争。
在Delphi 2.0出版之后,PowerBuilder面临了更大的挑战。因为VB在易于使用和
Microsoft的努力之下仍然呈现成长的趋势,但是PowerBuilder在许多场合却是直接和
Delphi竞争。在Delphi 2.0推出之后,Borland也很快查觉到许多Delphi的使用者是从
PowerBuilder转来的,于是当时Borland内部便拟定了置换PowerBuilder计划,希望能
够持续从PowerBuilder手中抢得更多的市场占有率。

Delphi 2.0的纯32位编译器以及执行速度一直是许多人喜欢的,这也对PowerBuilder
带来了压力,因为许多PowerBuilder的使用者,特别是软件公司对于PowerBuilder使
用的语言PowerScript执行缓慢而不悦,但是却喜欢PowerBuilder的DataWindow。因
此在当时Sybase便宣告将为PowerBuilder开发一个编译器,以增加PowerBuilder应用
程序的执行速度。不过Sybase并没有在Delphi 2.0之后的PowerBuilder 5.0实现出来,
一直要到PowerBuilder 6.0才推出PowerBuilder编译器,不过问题仍然多多。

当时我曾经仔细地观察台湾参加Delphi发布会的使用者以及参加PowerBuilder的使用
者,发现了一个很有趣的现象,那就是一开始参加Delphi(1.0/2.0)的使用者几乎都
是工程师,很少有DB Center的信息人员或是信息经理。而去PowerBuilder的使用者
则甚少工程师,大部分都是穿着体面的DB Center的信息人员或是信息经理。不过这
个情形在Delphi 2.0之后逐渐改变,因为当Delphi慢慢地被企业接受成为开发工具之
后,也有愈来愈多的信息主管人员出现在Delphi的发布会中。

下图是我早在1999年便绘制的资料,从这个Slide中读者可以发现Delphi、VB和
PowerBuilder的竞争是一个版本对应一个版本的。每当竞争对手推新的版本之后,另
外的竞争对手都会立刻推出相对应的竞争版本。但是在Delphi 2.0之后,PowerBuilder
便开始逐渐无法同步跟上Delphi和VB的竞争脚步,差距也愈拉愈大。

基本上Delphi、VB和PowerBuilder的竞争在Delphi 2.0时期是最为激烈的,在Delphi
3.0和VB 5.0之后大势已定。PowerBuilder已经定位成数据库开发工具,无法像Delphi
和VB一样成为Windows平台中通用的开发工具。因此PowerBuilder的使用者群组便逐
渐缩减到DB Center或是信息室的使用者。这个现象当时在台湾非常的明显,因为大
多数的软件开发厂商、软件包厂商或是项目厂商逐渐地舍弃PowerBuilder,不是选择
使用VB就是选择使用Delphi。在Delphi 3.0之后,Windows平台的主从架构开发工具
市场已经是VB第1,Delphi第2,而PowerBuilder退到第3,并且和Delphi/VB的差距愈
来愈大。经过了3年的激斗,传统主从架构开发工具PowerBuilder和Gupta仍然不是
Microsoft和Borland的对手,即使PowerBuilder曾经拥有超过世界50%的占有率。当初
Sybase也没有预料到在并购了PowerBuilder之后,这么快就损失了大片的江山。不过
比起Oracle和Informix来说,Sybase下的本钱还是比较划算的,因为同时竞争的Oracle
Developer 2000早已只能送给Oracle数据库的使用者。而Informix的主从架构开发工具
Neon更是凄惨,在出了一个版本之后,由于体积庞大,执行缓慢,又臭虫成堆,还没上
场竞争,就被丢人垃圾桶了。这对当时所有投入大量资源开发主从架构开发工具的软件
厂商来说,都是受伤不轻,当然除了Borland和Microsoft之外。

PowerBuilder和Gupta数年辛辛苦苦建立起来的主从架构王国,只经过短短的1、2年
就被VB和Delphi所鲸吞蚕食是有许多原因的。PowerBuilder和Gupta着重在高价、专
有的主从架构市场,却不知主从架构已经逐渐成为一般信息架构应用主流,大量的程
序员需要的是价格合理、功能齐全的开发工具。PowerBuilder和Gupta价格的奇高和
功能的缺失,在VB和Delphi加强主从架构的功能之后便逐渐地浮现出来。此外
PowerBuilder和Gupta当初风行的一个重要因素是提供了连接到各种RDBMS的驱动程序,
以提供开发数据库和主从架构应用系统的能力。但是当VB和Delphi都分别提供了ODBC和
BDE/IDAPI技术连接更多的数据库服务器之后,PowerBuilder和Gupta的优势也就不再
了。另外一个关键性的因素是PowerBuilder和Gupta一直无法成为大众化的开发工具。
除了DB Center和企业之外,PowerBuilder和Gupta无法被大量的ISV、商业软件包厂商、
一般工程师、甚至是学生使用来开发各种不同的应用系统。因此PowerBuilder和Gupta
只能在特定的软件族群中使用,限制了可能成长的潜力市场。

最后我认为最重要的原因是Sybase和Gupta在面对Microsoft和Borland这两个非常精
于实现开发工具的厂商时过于轻心,反应的速度太过于缓慢,以致PowerBuilder和
Gupta除了在数据库和主从架构功能之外,其他的功能都太过阳春。特别是在Java逐渐
兴起之后,PowerBuilder和Gupta最后跨平台的诉求也在瞬间瓦解,因此失去市场也是
不可挽回的命运了。

Borland C++Builder的诞生

在Delphi l.0/2.0大获成功并且对Borland产生了巨大的收益之后,来自Borland
C/C++使用者的需求,即要求Borland也推出一个C/C++版本的呼声也愈来愈强烈,到了
Borland无法忽视的地步。不过这对Borland来说,却是一个相当伤脑筋的事,因为
Delphi是用Object Pascal写的,如何转成C/C++?如果要开发C/C++版的Delphi,那么
Borland C/C++的产品线要如何处理?因此这也在Borland内部起了极大的争议,这又
是另外一个故事了。不过不可否认的是,Delphi 1.0/2.0的成功正是促成了Borland
C++Builder面世的主要动力。

争执的开始

Delphi 2.0的再次重大成功仿佛为Delphi研发小组注入了一支巨大的强心剂。Delphi
研发小组迫不及待地要开发Delphi3.0,以便趁胜追击,进一步的拉近和VB的距离,
并且再次给予PowerBuilder/Gupta重击,以便从PowerBuilder/Gupta取得更多的市场。
在Delphi 2.0推出之后,根据当时Gartner Group的调查,主从架构开发工具的第
一名仍然是PowerBuilder,第二名是VB,而第三名则是Delphi。Gupta的市场占有率
快速地下滑,已经无法进入前三名的占有率了。不久之后Gupta改名为Centura,希望
力挽狂澜,但是仍然无法改变市场的现实,并且逐渐淡出主从架构的开发工具市场。
这对于VB和Delphi来说都是重大的胜利,因为VB和Delphi在短短的一两年之内就几乎
瓦解了PowerBuilder/Gupta在主从架构市场数年经营的优势。虽然PowerBuilder还暂
时维持第一的占有率,但是已经从50%几萎缩到了40%,而且还在不断的下滑之中。
PowerBuilder在VB和Delphi的强烈进攻下岌岌可危,产品价格也在快速地滑落之中。

不过在Delphi 3.0的功能会议中,Anders和Zack却再次发生了强烈的争执,因为这两
个Delphi的灵魂人物对于Delphi 3.0的走向出现了不同的看法。其时由于Microsoft
的COM/DCOM等技术逐渐成熟和受到愈来愈多的使用,因此Anders希望Delphi 3能够充
分地支持开发COM/DCOM的技术,并且提供比VB更方便、比VC更强大的能力。为了实现
这个想法,Anders力邀Alain Lino Tadros加入Delphi的研发小组。为什么Anders会
找上Alain呢?这是因为Alain曾在1996年BorCon的研讨会上以惊人的技术写了5000多
行的程序代码,把VCL组件直接变成COM对象。Anders在BorCon上知道之后,立刻有一
个想法,那就是如何能够延伸Alian的技术,如果通过一种方法便能够把所有或是大
部分的VCL组件变成COM对象以及COM Container的话,那将是多奇妙的事情。如此一
来Delphi的研发小组也不需要为实现COM/DCOM的功能而大费周折了。而Anders的这个
想法也促成了后来Delphi 3中IVCLComObject接口和技术的诞生,直接把VCL转换为COM
对象的神奇功能。

除了邀请Alian之外,Anders也计划直接修改Delphi的编译器,让编译器能够直接处
理COM的参考计数值(Reference Count),免除Delphi程序员的麻烦,并且提供有效的
执行码。如果依照当时Anders的想法并且把Delphi 3依此实现出来的话,那么Delphi
将会是一个比Microsoft工具更好的COM开发工具。

不过Zack却不认为Delphi 3应该把这么多的资源花在支持COM/DCOM上。虽然Zack同意
Delphi 3必须对COM/DCOM有好的支持,但是他认为Delphi 3应该在Delphi 2的主从架
构获得了胜利之后,继续往更高阶的方向努力,那就是分布式架构,以便把Delphi塑
造成能够开发大型企业的开发工具,把Delphi打入获利丰富的企业市场。因此Zack和
当时Borland开发工具部门的负责人Paul Gross激活了所谓的Golden Gate计划,希望
提供Delphi强大的中介引擎功能,因此Borland并购了出版Entera中间件的公司,让
Delphi能够通过Entera连接到后端大型的系统,希望大型企业能够使用Delphi开发客
户端的应用程序。

由于Golden Gate计划得到了Borland高层的支持,因此Delphi 3的发展方向很快便朝
向分布式技术前进。虽然COM/DCOM的支持也在产品的计划之中,但是并无法做到像
Anders所想要的境界。由于Anders的理想无法被接受,因此在Delphi 3的发展中后期
阶段,Anders并没有介入太多Delphi 3的开发工作。

在Delphi 3正式发表之际,Delphi的研发小组很巧妙地平衡了COM/DCOM和分布式技术
的功能,也让Delphi 3成为Windows平台中第一个提供分布式开发的开发工具。而
Delphi 3当时使用的Marketing Slogan以及产品诉求的重点也是"Component Foundry",
意谓Delphi 3可以轻易地建立VCL组件以及COM/DCOM/ActiveX组件。

Delphi 3推出之后,Delphi应该算是到达了巅峰的状态,销售数字也非常的亮丽,已
经超过了Borland C/C++3.1的销量,而Borland也有了稳定的收入。但是人无远忧必
有近虑,后来发生的数件大事几乎让Delphi重演当初Borland C/C++4.0的历史覆辙。

不知道读者看到这里有什么想法?我认为COM/DCOM和分布式技术都是重要的,后来的
事实也证明分布式技术是Delphi的强项之一,而应用系统架构也逐渐走向分布式多层。
不过没有像Anders的想法把Delphi塑造成无敌的COM/DCOM组件开发工具相信也是许
多人的遗憾。

在Anders逐渐不介入Delphi 3的开发之后,随后发生的两件关键的事情便注定了
Anders Hejlsberg继Philippe Kahn离开Borland的命运。

天才的损失和新英雄的接棒

在Anders和Zack对于Delphi的走向逐渐出现了歧见之后,Anders便没有再主导
Delphi 3.0的开发,反之Zack在Delphi开发小组中的角色却日益重要,后来几乎是
Delphi 3和Delphi 4的主要领导人。为什么Delphi的Architect Anders会慢慢地淡出
Delphi的核心呢?这和Philippe Kahn离开Borland也有重要的关系。

英雄落难

Philippe Kahn和Anders共同创造了传奇的Borland,两人之间有着浓厚的感情。在
Borland工作时,对于Anders任何的想法和计划,Philippe Kahn都是不遗余力地支持。
也正是这个重要的支持力量,才有随后极为成功的Borland Pascal以及Delphi的问世。

但是在Philippe Kahn离开Borland之后,Anders再也没有了这股来自最亲密战友的强
力支援。1997年,Borland新的CEO Delbert Yocam在掌握了大权之后,Borland整个
公司开始走向第二个重要的转变,Delbert对于Borland产品的开发和趋势也有了不同
于Philippe Kahn的看法。当Java在1996年逐渐快速发展之后,睿智的Anders也看到
了Java成功的未来。因此在Anders不再积极参与Delphi 2/3的开发工作之后,他非常
希望能够主导Borland Java开发工具的开发,期望能够像当初的Delphi 1.0一样,为
Borland再次开发出全世界一级的Java开发工具。

不过,由于当时Delphi是Borland最重要的收入来源,高层仍然希望Anders继续在
Delphi产品线上投入全力,因此当时的Borland CEO Delbert Yocam并没有批准Anders
的请求。Borland的下一个重要的开发工具JBuilder,当时的产品开发名称为Latte,
仍然交由其他小组负责。依据我的推想,由于当时Anders对于Java已经有许多的想法,
因此才会有后来的VJ++以及C#,这些产品和程序语言的许多特性想必已经在Anders的脑
中存在了一段时间了。

Delbert没有允许Anders带领Latte开发小组,但Anders仍然没有放弃他的新计划。也
许是Anders注定和Borland的缘分已经到了尽头,这个时候正好Microsoft展开了有史
以来对Borland最大的挖角行动。在Anders无法在Borland取得满意的支持之后,
Microsoft提供的优厚条件顿时对Anders产生了致命的吸引力,从而造成了Borland无
法挽回的遗憾。

虽然Anders没有显赫的学历,无法获得Turning Awards(即图灵奖,信息科学界最高
荣誉的奖项,等同于诺贝尔奖)。但是我认为Anders的实力和贡献绝不输于任何一位
Turning Awards的得奖人。Anders是最好的信息实践型人物,在2001年,他终于获得
了信息界最具权威的信息刊物Dr. Dobbs'''' Journal颁发的Excellent Programming
Awards,以表彰Anders为信息界做出的卓越贡献。我想Anders应该是许多本身没

上一页  [1] [2] [3] [4] [5]  下一页


[网页制作]Frontpage2000中文教程:第三章 制作你的第一个主…  [网页制作]Frontpage2000中文教程:第三章 制作你的第一个主…
[网页制作]Frontpage2000中文教程:第三章 制作你的第一个主…  [Web开发]从HTML语言到网上家园 第三章 超文本链接
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台