当前位置: 代码迷 >> PB >> ㊣㊣PowerBuilder历史㊣㊣解决办法
  详细解决方案

㊣㊣PowerBuilder历史㊣㊣解决办法

热度:36   发布时间:2016-04-29 05:43:49.0
㊣㊣PowerBuilder历史㊣㊣
作者: Chris Pollach
原文:http://pbdj.sys-con.com/read/124571.htm
译者:PB助手

Sybase从什么时候开始开发PowerBuilder这个工具?PB又是如何演变成今天的模样?我曾经多次被不同的客户和学生问起这样的问题,而且一些IT界人士也对此表现出浓厚的兴趣,因此我不得不经常重复这个故事,并答复许多关于这方面的email。所以我决定将这篇东西正式地发布在 PBDJ(注:pbdj.sys-con.com)上,以便使更多的后来人能了解PB的故事。下面所说的完全是我个人的一些观点及经历,某些事件发生的时间或地点可能会有些偏差(在我这样的年纪,记性是越来越差了)。OK,让我们从头开始吧。

第一幕 孕育
在那遥远的群星中……,早在Sybase之前……,PowerBuilder的产品原型被一家位于波士顿(美国马萨诸塞州)的名为Cullinet的数据库公司开发出来。Cullinet也是IDMS关系型数据库和ADS-Online应用开发系统的拥有者。IDMS数据库最开始是BF Goodrich开发的,这是一家位于加拿大安大略省伦敦市的轮胎公司,然后卖给了Cullinane(也就是后来的Cullinet)。 Cullinet同时还有一种名叫”Golden Gate“的基于PC的开发工具,它可以被用来开发连接大型数据库主机的Client/Server图形化界面(GUI)应用程序,它原本是DOS下的开发环境,后来才被移植到MS Windows。1984年的时候,Cullinet认识到对基于PC的数据库及开发工具的需求即将兴起,他们考虑是否能参考ADS-Oline这个运行在327X机上并获得巨大成功的快速开发工具(RAD)开发出另一个基于PC的GUI开发工具。ADS-Oline的主要特性包括:快速开发,集成设计、编码、编译及调试,交互式原型生成等。它同时也拥有集中的数据字典,以及对不同的CASE工具的接口,可以直接从开发环境生成产品交付使用。

1984年,Cullinet开始了它的PC版的ADSO的原型工作,那时我是Cullinet加拿大的技术支持经理。这个项目组的头叫作Dave Litwack,他负责ADSO产品及IDMS-DC(一种类似于远程处理及客户信息控制系统的产品)。由于在Cullinet的多年经验,Dave对快速开发工具及通讯有着深刻的理解。这个开发中的新产品将拥有与ADSO一样的关键特性(值得一提的是,早在1985年的PB原型中,ORCA已经基本可以工作,这正是因为ADSO/IDMS拥有这项功能),同时还将新增一项重要功能:”一个强大的数据感知对象“。当时Cullinet正在试验一个叫作 LRF(逻辑记录能力)及数据库存储过程的特性,这个新的对象将可以封装数据处理过程,使之从应用中剥离,而且它应该位于客户端,不依赖于任何服务端的数据库实现。

在这个原型的最初阶段,Dave选择了一名真正的C语言高手,名叫Kim Sheffield,同时他又从渥太华(安大略)招募了John Griffin--我的一个朋友,John是一名出色的大型机汇编程序员,那时他正准备转型到C语言。Dave让他编写了Menu画板(painter)。后来,John和另一名Cullinet的程序员Julie结了婚,Julie帮他一起重写了Menu画板以及在PB里加入对 EAServer组件的远程调试功能。

Dave想要打造一个完全面向对象的全新工具,当时,C++正强力推出,但SmallTalk才是面向对象编程的真正主流。Dave希望PowerBuilder采用SmallTalk的面向对象思想,但同时要更易于被那些商业程序的开发者所使用。

在1985年的时候,这个工具的基本原型在Cullinet公司内部展示,它的潜力很快被高管层所明了,这些人中包括Bobby orr--曲棍球传奇[以后我会说的另一个有趣的故事],那时他在Cullinet董事会任职。但很不幸的是,当时Cullinet正面临着被其他公司收购的严峻挑战,这其中包括CA(Computer Associates)公司。当时CA已经收购了DataCom并想要收购Cullinet以获得IDMS,CA的想法是用钱来阻止竞争,卖掉所有非关键业务,然后通过对主要客户的产品维护来谋利。因为没有或仅仅保留少量开发人员(裁员),公司便可大量节省开支并获得更多利润。在1986年,CA终于成功地完成了对Cullinet的恶意收购,这个新的PC开发工具被认为是无足轻重的,与之相关的所有开发人员都被遣散。(这也就是为什么到现在我也从不购买任何CA产品的原因!)

第二幕 重生
1986年的时候,PowerSoft公司为VAX平台开发商业应用程序,同时它也认识到基于PC的应用开发即将引爆,于是开始四处寻找具有领先水平的GUI开发工具。他们雇佣了一名独立咨询师来提供相关建议,此人正是Dave Litwack。当时,Gupta公司的SQLWindows是市面上唯一真正的GUI开发工具,而不象其他的产品那样,你必须在开发过程中编写若干C代码。而这一点也正是PowerSoft希望在商业应用开发中所能避免的。Dave提到了他在Cullinet的工作以及那个最后的原型,于是 PowerSoft找到CA,问是否能得到那个用C写成的PowerBuilder原型的源代码。CA答复说他们看过了那个原型而且认为它不会有前途(咄)--所以给点钱拿走吧,祝你们好运!

1988年,也就是PowerBuilder原型完成三年之后,PowerSoft拿到了它的源码,Dave终于又可以开始继续他的工作,他加入的 PowerSoft,并重新征召当年的原班人员,幸运的是,他们当时也正在寻找一些富有挑战性的工作。然后PowerSoft把这个产品命名为 “PowerBuilder”并开始完善以及增强它的功能。由于PowerSoft本身就是一家商业应用开发公司,他们开始在内部使用 PowerBuilder来重新开发并替代原有的VAX平台下的产品,因此测试工作得以在真实的开发环境中进行并得到加强。为了使这个新工具的开发获得更多的资金支持,PowerSoft和HP建立了伙伴关系,HP在看过PowerBuilder的演示后给了他们一大笔钱(这也是象“~Onn”这样的八进制表示法被引入的原因--当年HP还是8位的机器)。PowerBuilder成为了HP内部应用系统开发的标准。

与此同时,在微软雷蒙德的办公室,负责开发内部应用系统的工程师们也面临着与当年PowerSoft同样的问题--他们需要一个专门的应用系统开发工具。他们询问那些在HP工作的朋友,被告之:PowerBuilder是唯一一个值得一看而且很有前途的工具。于是在1989年的早些时候,MS购买了 PowerBuilder的使用许可并成为PB的第二家全球用户。而“澳洲皇家空军”则是PB的第一家官方用户--很荣幸的是,我正是一个来自 Cooma,新南威尔士的澳洲人。

在我4岁的时候,我父亲曾带我到悉尼大学,在那里他使用一台SILLIAC I(伊利诺斯州大学计算机ILLIAC的悉尼版本)--第一台商用计算机,曾被制造用来在雪山水力发电站计算大坝的压力及形变(甚至在今天,这仍然是世界上最大的水力发电站http://www.snowyhydro.com.au)。也是在这里,我平生第一次见到了“程序调试员”……这是另外一个故事。这个雪山电站到现在仍然使用着PowerBuilder开发的程序。微软也使用过 PowerBuilder来开发他们的库存管理系统,微软大学排课系统等等,他们被它强大的数据处理能力所折服--尤其是那个被叫作 ”DataWindow"的新对象(感谢Kim取的名字)

第三幕 威力
1989年的时候,我代表加拿大税收和财政委员会为加拿大政府做一个项目,我的任务是评估不断涌现的关系型数据库技术并给出排名前三的产品,他们将被推荐给所有的政府部门使用。我在89年夏天的晚些时候完成了这个项目。其中一个竞争者是微软的 SQLServer(这是Sybase SQLServer 4.x向OS/2平台移植的结果)。为了验证最后基准数据的准确,每一个数据库厂家都派出一名代表来协助我配置他们的环境并确认我的测试方法及结果。

最后,微软的工程师从新汉普郡来到渥太华。他给了我很大帮助,并问我下一步要做什么。我告诉他下一步是为这前三名的数据库产品比较并推荐GUI开发工具。他的回答令我震惊,他说我应该给一个叫“PowerSoft"的新公司打电话向他们要PowerBuilder看看,因为他和他在雷蒙德的同事们都在用它(当然,微软的Sales从不说这些)。我打电话给PowerSoft,但他们说不能给我一个评估版,我必须买一个,如果在试用后发现不合适可以退货(如果你曾经为美国或加拿大政府工作过,你就会知道这样的答复是多么愚蠢)。但幸运的是,他们告诉了我PB的由来,以及他们从一个被CA收购的波士顿数据库公司那里招聘了一批开发人员的事情。我谢过这位销售人员,接着挂机,重拨,找Dave Litwack,电话马上就通了,令我惊喜的是,Dave问我“qaStaH nuq? Chris!" (行话,意思是"What's happening,Chris?" www.kli.org/tlh/phrases.html),第二天,我就拿到了PB的一份拷贝(在这里再次感谢Dave)

我把这个版本(0.8 Alpha,当时是2张软盘)给了我的同事们,他们用了3天的时间来考验它,并连续地高速访问我们准备好的那些数据库环境。相比于其他的我们所接触过的工具而言,PB的DataWindow带来的数据处理及SQL生成能力就象是“一阵新鲜空气”,而且速度也非常接近于用C所编写的代码,相比而言,SQLWindows慢得象牛一样(个人观点)

PB成为了我们推荐给加拿大政府的三款开发工具中的首选。税务局使用PB开发了GST(政府营业税征管系统),用来征收和管理所有的税收记录,甚至在今天仍在使用--可见系统的重要性。其他部门紧随其后,今天,绝大多数的加拿大政府部门使用PB来开发他们的重要工作系统:在进入加拿大境内时你的汽车牌照被扫描(与一个PB管理的后台数据库进行对比),你的护照被扫描并检查(这些都是PB作的);如果你的私人飞机停在加拿大的飞机跑道上,一个用PB实现的24×7的计费系统将和雷达系统一道对您的飞机进行计费;如果你要领取一笔养老金(前后端均由PB实现,该系统在2002年1月投入使用),向最高法院登记一个案例或者访问他们的网站http://www.scc-csc.gc.ca,向税务法院提出一个诉讼,登记枪械,部署联合国部队,接受一项国防部的安全检查,联邦选举,这样的系统很多,很多。

在90年代早期,SQLWindows和一个新的工具——Delphi,在性能方面对PB发起冲击。SQLWindows开始支持生成C语言编译码,而Delphi从一开始就是这样。这使得SQLWindows变得和PB一样快,但Delphi在循环操作方面比PB要快很多。但 DataWindow——这个用90%的C代码以及10%的汇编写成的对象,仍然具有无可比拟的优势(我有一个很好关于VB.NET vs. PB9的例子,在去年,为一个政府部门开发基于MSSQL数据库的应用系统,PB以约40倍的性能优势胜出!但PB的表现似乎比我过去的经验要差……)

很多年以来,Dave, Bill Rabkin(最初的PB技术传道士),和我一直在探讨关于编译器的话题。我们也经常评论起那些在沃特卢(安大略省)的家伙在开发最先进的线性编译器的时候是多么地高效。也正是在这个时候,Gupta(开发SQLWindows的公司)开始在他们的产品中捆绑自己的数据库SQLBase。 PowerSoft也想要这样做来操持竞争力,他们开始在PB(应该是2.0)中捆绑WatCom公司的SQL数据库,这对我来说毫不奇怪。就象 Vitor kiam说的:我太喜欢它了我要买下它。PowerSoft在PB第三版时买下了这个公司,此后,这次收购的另一个好处开始显现,Dave对那些原 WatCom公司中写C编译器的家伙说:你们能把PB的P-code拿掉并生成纯C编译码吗?(那时PB刚从C语言平台迁移到C++)。他们说:没问题,而且在一周之类完成了工作。这次,PB在性能上的提升让Delphi开始坐立不安,加上DataWindow的出色表现,PB让竞争者落后很多(到今天依然如此)。

也正是在这个时候,Bill Gates来到渥太华发表他对加拿大政府的重要演讲。我和他见了面(1994年),他告诉我一些有趣的事情:微软使用WatCom的C编译器来开发VB的 JET引擎,Access的部分功能以及整个FoxPro for Windows。微软无法把这些产品转换为使用他们自己的编译器,因为这会使这些产品的性能慢400倍,而这是广大用户不可接受的。我的一个朋友,他离开了原来在多伦多的工作去了雷蒙德,他告诉我Bill希望把VB改为纯面向对象的语言并且已经有了一个原型(1993年4月),但是在作原型演示时,那些重要客户都表示无法接受:为了得到纯面向对象的好处,而不得不全部重新改写他们的代码(就象现在的从VB6到VB.NET一样)。他们告诉微软 PowerBuilder让他们感觉更好。而最近,许多渥太华VB.NET的开发者也告诉我,他们正建议他们所在的开发部门转向 PowerBuilder,因为它在面向对象方面更友好且容易学习得多。(难道你不认为这很有趣吗?)
  相关解决方案