前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PowerBuilder历史--一个澳裔加拿大人眼中的传奇_PowerBuilder菜鸟讨论区_积木群组 积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区 登录 | 注册 关键字: 找答案 群组 >> PowerBuilder菜鸟讨论区 PowerBuilder菜鸟讨论区 共有496位成员   人气指数 -   最新排名 - 【话题】PowerBuilder历史--一个澳裔加拿大人眼中的传奇 2009-11-16 16:29:39 来自:皮带轮车 浏览数:91次 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,因为它在面向对象方面更友好且容易学习得多。(难道你不认为这很有趣吗?) 第四幕 危机 在90年代中期,Gupta被Oracle多次的恶意收购的企图所击垮。Oracle想要和PB竞争,但是PowerSoft那时的财务还很稳健,Oracle无从下手,所以Oracle象当年的SQLWindows一样重新开发了自己的开发套件SQL Forms等。甚至在今天,任何一个曾经使用过SQL Forms的我的学生在见到PB后,无不象抛掉一块烫手的山芋一样抛弃了SQL Forms。这里有一个最近的例子:我接手了一个新的系统,这个系统曾经由2个使用Oracle的开发者在Oracle数据库上开发,但他们用了9个月的时间却无法拿出一个象样的原型。我用PB7/8开发了大约3个月的时间,并且让整个新系统在3个月之内投入了运行。很明显Oracle输了,甚至是使用他们自己的数据库。这个系统在几个月前被升级到PB10.2,目前正在使用。 Dave Litwack和当时的PowerSoft执行层对Oracle的行动很紧张(CA收购Cu的阴影),他们想要联合另一家大公司来确保Cullinet的故事不再重演。Sybase曾经将自己的SQLServer产品转移到MS-NT平台上,因而也知道PB的威力(甚至今天仍有约63%的基于Oracle 的系统使用PB来作为开发工具),他们正好缺少一个好的GUI开发工具。两个公司一拍即合,在技术上互为补充,WatCom也随PowerSoft一同并入Sybase,并被更名为iAnywhere Solutions. Dave Litwack和Kim Sheffield在此后不久便离开Sybase去开发一个真正“cool"的产品,也就是SilverStream(http://jdj.sys-con.com/read/36628.htm)。同样的,这个工具也拥有一个开放IDE所应具备的关键特性:集成开发,连接各种不同的数据库,集中管理的数据字典,方便部署,快速原型开发,服务提供对象等。Sybase本也不应该忘记这些作为一个好工具的必要特性。最近,Microsoft终于在VS2005里学到了这个昂贵的教训(差不多用去10年的时间)。我用过SilverStram这个产品,这个新Java开发工具的功能在1998-99年末的时候得到验证。一些加拿大联邦政府的代理机构开始使用它,我们也用它开发过一个很好的网站门户。Kim对这个工具所增加的一项关键特性就是一个与DataWindow相似的对象,并且支持树形结构显示(PB10.5让人伤心,直到今天才加入这个功能)。这些组件可以在Java本地或网站开发中使用。所有这些特性都使得SilverStream远胜过 PowerBuilder,以及同时出品的PowerJ。在事后看来,当年John Chen(程守宗)同意Dave他们离开而不是继续从事在PB,以及目前Sybase的新产品“WorkSpace”(一个基于Eclipse的集成开发环境)上的工作,这实在是一个重大失误。由于在2000年早期过分关注Java,Sybase失去了发展PB的重要契机。 在2003年的时候,SilverStream被Novell收购,Dave Litwack目前仍在这家公司。Kim Sheffield则离开了Novell,现在是fyiReporting软件公司(www.fyireporting.com/company.html) 的主要所有者。他有一套用C#开发的令人感兴趣的报表产品,可以当作插件在PB程序中使用(又绕回来了……)。因为我本人非常尊敬作为一名程序员的 Kim,所以当看到他放弃Java转而投向.NET时觉得这里面很有意思。也许Sybase应该对象Kim这样的重要的开发者保持关注,因为他们反应了当前市场上的流行趋势(本人拙见)。Dave现在是Novell的高级副总裁兼总经理,负责身份认证驱动产品系统(www.novell.com/company/bios/litwack.html)。Bill Rabkin也离开Sybase去了Rational,但在与IBM合并后不久又辞职了,现在是Idiom科技的WorldServer产品的积极传道者。 第五幕 反击 早在与Sybase合并之初,PowerSoft便丧失了“工具创新”的方向(我相信这是因为“服务端”产品的思维左右了高管层)。但最近,我们看到了这种精神的在PB10,11等产品上的重新振作,包括PB12的远景蓝图,Java的低迷(对过去2年的最新统计显示:约60%的美国公司去年所进行的Java项目最终被放弃),针对Window CE(Pocket PC)的PocketBuilder产品的推出等。 有趣的是,PocketBuilder产品的开发是由Reed Shilts(一个资深的PowerBuilder导师)以及John Griffin所领导的,后者是渥太华人,从最初的Cullinet时期便开始从事PowerBuilder开发,直到今天,仍然不断地在PB的产品线中加入一些加拿大人的东西:)。Sybase下面的iAnyWhere子公司(原来的WatCom),现在位于加拿大的沃特卢,最近发布不少好东西,同时也在不断地加强他们的数据库产品(我认为这是当前市面上最好的中小型DBMS)。也许这才是我最近所发现的Sybase公司在重新审视开发方向的努力上的真正关键转变。不过,这应该是另一个故事(全文完) 更多相关的话题 kunaoderen回复于16日17点11分  up 凌霄·筝回复于16日17点51分  up hyhy618回复于16日18点23分  我是第一个 my100_100回复于16日19点00分  我第一次知道用了三年的用来养家糊口的工具PB原来还有这么曲折的故事~ umida回复于16日19点47分  现在国内还有很多PB开发的大型系统在运行。 吃了石头回复于16日20点26分  PB12的远景蓝图。究竟是如何?不知道 seoad回复于16日21点08分  我曾经来过. 贺学红回复于16日21点52分  期待啊,现在太弱了,和其他工具相比毫无竞争力 陈俊杉回复于16日22点30分  up fsafas回复于16日23点04分  顶一个 问号问回复于16日23点41分  传奇!不管今后如何,PB足以 数学の傻瓜回复于17日03点16分  我来看看的 ,没啥用 ,和学历史一样, 全部忘记了 zhaoyi回复于17日03点58分  看了一遍,pb历史真悠久 joanben回复于17日04点45分  PB 历史压缩版: 1984年,由于在Cullinet的多年经验,Dave对快速开发工具及通讯有着深刻的理解 在PowerBuilder原型的最初阶段,Dave选择了一名真正的C语言高手,名叫Kim Sheffield,同时他又从渥太华(安大略)招募了John Griffin--我的一个朋友,John是一名出色的大型机汇编程序员 DataWindow——这个用90%的C代码以及10%的汇编写成的对象 在1986年,CA终于成功地完成了对Cullinet的恶意收购,这个新的PC开发工具被认为是无足轻重的,与之相关的所有开发人员都被遣散。 1988年,也就是PowerBuilder原型完成三年之后,PowerSoft拿到了它的源码,Dave终于又可以开始继续他的工作,他加入的 PowerSoft,并重新征召当年的原班人马 一个开放IDE所应具备的关键特性:集成开发,连接各种不同的数据库,集中管理的数据字典,方便部署,快速原型开发,服务提供对象等。 Dave Litwack和Kim Sheffield在WatCom随PowerSoft一同并入Sybase后不久便离开Sybase去开发一个真正“cool"的产品,也就是SilverStream SilverStream被Novell收购,Dave Litwack目前仍在这家公司。Kim Sheffield则离开了Novell,现在是fyiReporting软件公司的主要所有者。他有一套用C#开发的令人感兴趣的报表产品,可以当作插件在PB程序中使用(又绕回来了……) John Griffin从最初的Cullinet时期便开始从事PowerBuilder开发,直到今天,仍然不断地在PB的产品线中加入一些加拿大人的东西 kelly2009回复于17日05点20分  up huanggy回复于17日05点58分  很久不来了,出来见见太阳 cws221回复于17日06点36分  如果那天PowerBuilder像QQ一样几天自动给你更个新什么的,或者免个费什么的,或者搞个什么昙花一现的XXX框架XXX架构XXX平台,或者云啊雾啊什么的,你就会认为PB太强大了。 很简单的问题,因为这样能满足大家的心理需求。 蓝色梦想回复于17日07点03分  我顶啊 ,不能不顶啊 > 返回话题列表 PowerBuilder菜鸟讨论区的其他话题... 我想为MDI程序中的主框架加上垂直滚动条,在窗体创建时指定了WS_VSCROLL风格,在SetScrollInfo时怎么又多出一个新的滚动条来了? 编译碰到一个问题,说我“sockaddr_in”: 形参表中的名称非法 VC中连接SQL数据库的_ConnectionPtr中的Open函数第一个参数的问题?急求!!! vC中ODBC方式将ACCESS数据库中的字段值赋值给一个变量 在局域网中,如果一个客户端更新了服务器上数据库表m中的记录后,其它客户端如何及时知道表m被更改了?服务器能自动及时发出通知信息让客户端知道吗? PHP:写一个正则替换,替换字符串中的,,||字符为空格 在dialog中创建一个tab,怎么得到tab中的数据返回到另一个dialog中? 查询我的一个用户在所有用户中的哪个级别 如何用一个按事件调用GridView中的事件? 问一个关于扫描Iterator容器中的status属性的问题,谢谢~ 一个在我学习编程中的问题很困惑我,请帮忙解答~ 如何用Delphi做一个服务程序读取网页中的一段文本 PHP 语言写一个函数把 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5 一个PHP环境安装过程中的遇到的问题,请大家帮忙解释一下 一个基本的窗体,有一个对话框,如何对对话框中的按钮写单击事件呢?(有代码) 网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com Copyright © 2008 Gimoo.Net 京ICP备05050695号