第三章:传奇的开始:Delphi(2)----摘自李维<Borland传奇>(50分)

  • 主题发起人 主题发起人 四库全书
  • 开始时间 开始时间

四库全书

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
Anders 的计划以及Zack 的想法
在Delphi 1.0 大获成功和如日中天之后,雄心满满的Anders 立刻开始了下一版Delphi
的开发计划。此时Delphi 的研发小组的资源更多,因此Delphi 研发小组可以做更多的东西。
不过在1995年Delphi 1.0 推出之后,信息业界有了几项重要的改变。那就是随着Microsoft
Windows 95 的成功,企业使用Window 平台开发应用系统已经成为既定的趋势,再加上当时
数据库市场的快速发展,因此许多企业开始在Win-dows 平台寻找Client/Server的解决方
案。正由于这些需求快速而大量的兴起,因此造成了当时PowerBuilder 和Gupta 这两个主
从架构开发工具的盛行。当时PowerBuilder 是Window平台下占有率超过50%的主从架构开
发工具,而Gupta 则拥有超过30%的市场。这真是可怕,因为光是两个工具就占据了80%多
的市场。由于当时主从架构几乎由这两个工具所独占,因此PowerBuilder和Gupta 的价格
相当的高昂,笔者记得当时一套PowerBuilder 要价40 几万新台币,而Gupta也要30几万,
真是令人无法相信。
在Microsoft 方面由于Delphi 1.0 的成功,给了VB 相当大的压力。因此Microsoft
也在Delphi 1.0 推出之后立刻也推出VB 4.0 正面迎战。VB 4.0 当时强调的重点是VB 应用
程序也可以编译成可执行文件,不过由于VB 4.0 的编译器品质尚不成熟,因此编译出来的
效果也不好。再加上VB 4.0 的臭虫非常多,因此算是一个相当不成功的产品。正由于这些
因素,因此在当时也传出了VB 双数版本品质不如奇数版好的传闻。不过在当时由于
PowerBuilder 和Gupta 的获利非常丰富,而Microsoft 也看到了主从架构将会是未来数年
重要的信息架构,因此在VB 4.0开始,Microsoft也开始逐渐为VB 加入开发更多数据库以
及主从架构的能力,并且搭配Microsoft 的ODBC 规范准备向主从架构市场进攻。
Anders 在Delphi 1.0 成功之后,曾经接受媒体的访问,叙述他心中想在Delphi 2.0
中实现的功能。当时Anders 就说他希望为Delphi 加入Garbage Collection 的功能,因为
ObjectPascal 在建立对象方面是使用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 等竞争,进入获利较为丰富的工具市场,这是第1 次
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 果然也非常的成功,Anders亲手
打造的32位编译器不但编译速度奇快,编译出的应用程序品质更是无话可说。在当时Delphi
2.0 产生的执行程序代码屡获专业媒体和实验室的评比大奖,尤其在整数运算方面更是比
VC++执行得还好,在一般应用程序方面也和VC++的程序代码不相上下,整体来说只有在浮
点数方面落后VC++。这也是后来Borland编译器小组和Anders 后来激活Borland 下一代编
译器项目的原因之一,目的是为C++Builder和Delphi开发一个共享的后端最优化编译器。
不过很可惜的是,Anders 稍后离开了Borland,Anders 也没有参与完成这个最优化编译器,
否则Borland的编译器应该会比现在更具威力。
Delphi 2.0 如同Delphi 1.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 的产品中。
例如笔者强烈建议Delphi 应该在Web 方面投入更多的努
力,在Delphi 3.0 中实现类似当时IntraBuilder的能力,提
供可视化的方式开发Web 应用系统,也就是像现今的
DeveloerExpress 的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 才推出编译器,不过问题仍然多多。
当时笔者曾经仔细观察台湾地区参加Delphi 发布会的使用者以及参加PowerBuilder
的使用者,发现了一个很有趣的现象,那就是一开始参加Delphi(1.0/2.0)的使用者几乎
都是工程师,很少有DB Center 的信息人员或是信息经理。而去PowerBuilder 的使用者则
甚少工程师,大部份都是穿著体面的DB Center 的信息人员或是信息经理。不过这个情形在
Delphi2.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 一样成为 Window平台中通用的开发工具。因此PowerBuilder的使用者群组便逐渐缩
减到DB Center 或是信息室的使用者。这个现象在当时台湾非常的明显,因为大多数的软件
开发厂商、软件包厂商或是项目厂商逐渐的舍弃PowerBuilder,不是选择使用VB就是选择
Ben Riga,Lance 之后的
Delphi 产品经理
使用Delphi。在Delphi 3.0之后,Win-dow 平台的主从架构开发工具市场已经是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 之外。
Delphi,PowerBuilder 和VB 的发展进程
PowerBuilder 和Gupta 在数年辛辛苦苦建立起来的主从架构王国就被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 1.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
研发小组迫不及待的要开发Delphi 3.0,以便乘胜追击,进一步的拉近和VB 的距离,并且
再次地给予PowerBuilder/Gupta 以重击,以便从PowerBuilder/Gupta 取得更多的市场。在
Delphi 2.0 推出之后,根据当时Gartner Group 的调查,主从架构开发工具的第1 名仍然
是PowerBuilder,第2 名是VB,而第3 名则是Delphi,Gupta 的市场占有率快速的下滑,
已经无法进入前3 名的占有率了,不久之后Gupta改名为Centura希望力挽狂澜,但是仍然
无法改变市场的现实,并且逐渐淡出主从架构的开发工具市场。这对于VB和Delphi都是重
大的胜利,因为VB 和Delphi 在短短的1、2 年之内就几乎瓦解了PowerBuilder/Gupta在主
从架构市场的优势。虽然PowerBuilder还暂时维持第1 的占有率,但是PowerBuilder的占
有率已经从50%几萎缩到了40%,而且还在不断的下滑之中。
PowerBuilder 在VB和Delphi的强烈进攻下也岌岌可危,其时PowerBuilder的产品价
格也在快速的滑落之中。不过在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 多K 的程序代码把 VCL 组件直接变成COM对象。当时Anders在BorCon上知道之
后,立刻有了一个想法,那就是如果能够延伸Alain的技术,藉由一种方法便能够把所有或
是大部份的VCL 组件变成COM对象以及COM Container 的话,那将是多奇妙的事情。如此一
来,Delphi的研发小组也不需要为实现COM/DCOM 的功能而大
费周折了。而Anders 的这个想法就促成了后来Delphi3 中
IVCLComObject 接口和技术,直接把VCL 转换为COM对象的神
奇功能。
除了邀请Alian 之外,Anders也计划直接修改Delphi 的
编译器,让编译器能够直接处
理COM 的参考计数值,免除Delphi 的麻烦,并且提供执行码。
如果依照当时Anders的想法并且把Delphi 3 依此实现出来的
话,那Delphi 将会是一个比Microsoft 工具更好的COM 开发
工具。
不过Zack却不认为Delphi 3 应该把这么多的资源花在支
持COM/DCOM上,虽然Zack 同意Delphi 3 必须对COM/DCOM 有
好的支持,但是Zack 认为Delphi 3 应该在Delphi 2 的主从
架构获得了胜利之后,应该继续往更高阶的方向努力,就是分
布式架构,以便把Delphi 塑造成能够开发大型企业的开发工
具,把Delphi 打入获利丰富的企业市场。因此Zack 和当时
Borland 开发工具部门的负责人Paul Gross 激活了所谓的
Alain Lino Tardros,在
Delphi2.0 之后由Anders
邀请加入Delphi3.0 R&amp;D
小组,负责开发Delphi3.0
中有关COM和ActiveX 方
面的功能
Golden Gate 计划。希望提供Delphi 强大的中介引擎功能,因此当时Borland 并购了出版
Entera 中介软件的公司,让Delphi 能够藉由Entera 连结到后端大型的系统,希望大型企
业能够使用Delphi 开发客户端的应用程序。
扮演圆桌武士的Zack Urlocker,后来Zack升为
Borland Marketing的副总裁,也造成了他日后离开
Borland 的原因
由于Golden Gate计划得到了Borland 高层的支持,因此Delphi 3 的发展方向很快的
便朝向分布式技术前进。虽然COM/DCOM 的支持也在产品的计划之中,但是并无法做到像
Anders 所想要的境界。由于Anders 的理想无法被接受,因此在Delphi 3 的发展中后期阶
段之中,Anders 并没有介入Delphi 3的开发工作。
在Delphi 3 正式发表之际,Delphi 的研发小组很巧妙的平衡了COM/DCOM 和分布式技
术的功能,也让Delphi 3 成为Window 平台中第一个提供分布式开发的开发工具。而Delphi3
当时使用的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的命运。
 
8错!学习!
 
呵呵,继续看连载
 
Thank you very much!
 
呵呵~~~~~我买了一本,是最后的一本呀。。。真是幸运哦
每天晚上翻几页,真有意思
 
严重感谢四库全书,顶[:D]
 
后退
顶部