2006年3月10日09:46星期五 [译文]
最近看到一篇国外的文章,觉得很有意思,所以花了些时间翻译了一下,贴在这里,也好让大家了解一下PB昔日的辉煌 :-) PowerBuilder历史--一个澳裔加拿大人眼中的传奇 Sybase从什么时候开始开发PowerBuilder这个工具?PB又是如何演变成今天的模样?我曾经多次被不同的客户和学生问起这样的问题,而且一些IT界人士也对此表现出浓厚的兴趣,因此我不得不经常重复这个故事,并答复许多关于这方面的email。所以我决定将这篇东西正式地发布在PBDJ(注:pbdj.sys-con.com)上,以便使更多的后来人能了解PB的故事。下面所说的完全是我个人的一些观点及经历,某些事件发生的时间或地点可能会有些偏差(在我这样的年纪,记性是越来越差了)。OK,让我们从头开始吧。 第一幕 孕育 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产品的原因!) 第二幕 重生 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取的名字) 第三幕 威力 最后,微软的工程师从新汉普郡来到渥太华。他给了我很大帮助,并问我下一步要做什么。我告诉他下一步是为这前三名的数据库产品比较并推荐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,因为它在面向对象方面更友好且容易学习得多。(难道你不认为这很有趣吗?) 第四幕 危机 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的重要契机。
第五幕 反击 有趣的是,PocketBuilder产品的开发是由Reed Shilts(一个资深的PowerBuilder导师)以及John Griffin所领导的,后者是渥太华人,从最初的Cullinet时期便开始从事PowerBuilder开发,直到今天,仍然不断地在PB的产品线中加入一些加拿大人的东西:)。Sybase下面的iAnyWhere子公司(原来的WatCom),现在位于加拿大的沃特卢,最近发布不少好东西,同时也在不断地加强他们的数据库产品(我认为这是当前市面上最好的中小型DBMS)。也许这才是我最近所发现的Sybase公司在重新审视开发方向的努力上的真正关键转变。不过,这应该是另一个故事(全文完) ==== 2006/3/10 ==== Powersoft公司的前身叫Computer Solutions Inc(CSI),成立于1974年. 最开始的时候,象很多软件公司一样,提供咨询服务. CSI当时的业务集中在中小型厂商上. 凭借他们在这方面的经验,他们决定开发自己的软件产品。在1981年发布了GrowthPower. 这是一种MRPII系统,集成了许多综合性的金融产品,它只能在HP3000平台上运行.这个产品曾经拥有超过1000个的顾客. Mitchell Kertzman,公司董事长开始征求客户的反馈,以及对产品将来的需求. 客户的答案坚定而明确:他们想要图形界面(记住,这个时候,在90年代,Windows正像野火似的蔓延,昔日的字符界面看起来老旧过时). 因此,CSI开始寻找工具和技术来建设自己的下一代应用. 但他们得到的结果是.当时可提供图形界面的唯一手段,是使用C语言来编程. 碰巧,Dave Litwack,DCullinet公司的前副总裁(他刚刚离开Cullinet,由于后者被CA收购)正在波士顿地区的创投社区拿着一份商业计划四处争取风险投资,想要去开发一个好用的客户机/服务器图形开发工具,这个工具可以连接当时最受欢迎的关系数据库如Oracle、Sybase等. Dave Litwack很难找到有人资助,但这时Mitchell Kertzman来了,PowerBuilder在他们第一次见面约一年后诞生. DavidLitwack领导了PowerBuilder的研发团队,在1990年8月PowerBuilder1.0进入Beta测试(代号"Headstart"). 参与Beta测试的用户包括:美国航空、微软、3M、富达投资、可口可乐等等,很多. PowerBuilder1.0在1991年7月正式公布. 在短短六个月内售出$520万元的产品. 2.0版本在发布后不到一年的销售额(1992年)上升至$2210万美元. 在1992年第一季度实现盈利。 Powersoft于1993年2月3日上市. 当天股票从$20飙升至$38. 在后来的数周或数月内股票不断变化,但保持稳步攀升,因为Powersoft继续刷新着销售记录(1993年收入5700万、1994年13300万).当投资人和主管们都陶醉在万无一失的美好前景的时候,开始有绅士们上门拜访,他们做了个交易,这不是一个普通的交易. 这次要求牵Powersoft手的新郎是Sybase,它提供的近十亿美元的嫁妆也非常地诱人. 合并“婚礼”于1995年2月13日举行. 我希望他们当时留下了婚礼及蜜月的相片,因为"纸上财富" (这笔交易用Sybase的股票支付,当时市值$904万美元)并没有维持多久. Sybase伪造销售业绩的坏消息令其股票暴跌,当然,Powersoft总裁 Mitchell Kertzman及David Litwack所拥有的那些财富也一样。 尽管Sybase遇上了麻烦,但Powersoft的PowerBuilder技术仍然在C/S开发市场上占有主导作用。直至1996年,那时Web网站蓬勃发展. VB也逐渐成长,加上Borland的Delphi产品的推出. 除此之外,用户在使用PowerBuilder建立企业应用上面临诸多问题(这不是PowerBuilder自身的错,而是客户机/服务器应用模式的问题).预算被突然转向Web项目,VB及Delphi的用户开始超过PB,PowerBuilder逐渐被人淡忘,再也没有恢复往日的辉煌. PowerBuilder的忠实用户们仍然在坚持,但以往的光荣一去不返了. 字体:大 中 小 |