先简单介绍Power Builder(以下简称pb),它是基于客户端/服务器端软件架构,客户端必须为windows平台的快速开发面向对象的编程语言。
早期的大部分HIT公司选择pb进行HIT软件开发,曾经风靡一时。时至今日,除了要维护以前开发“老古董”,还需要懂pb程序员。据说某些地方新开发的业务,依然由pb开发,pb程序员还很“吃香”。不管怎么说,以后pb不再是HIT软件公司首选开发语言。今天pb所面临的情境,让我想起了古代一代名将廉颇,“廉颇老矣,尚能饭否?”。
为什么pb会过时,要从四个方面来看:
第一方面,pb属于收费编程语言工具,随着知识产权,正版化要求越来越严格。有免费的,当然首先选java、python、php等开发语言比较划算。
第二个方面,pb程序离开windows平台,正常来说是无法运行的,万一哪天要求政策要求,HIT软件必须运行在国产操作系统下(当今世界,一切皆有可能),比如linux,程序就需要重新开发。不过有pb .net开发,可以跨平台,但是.net的替代品太多,pb .net并未形成市场主流。
第三个方面,HIT软件从单体应用向服务过渡,SOA,中台架构都是以java编程语言为主流。pb其实也能基于SOA进行开发,但是懂得人太少了,不像java已经形成了生态,学习资料也多,懂得人多,相对来说比较容易。
第四个方面,继续使用pb开发HIT软件,招工困难。相对于整个程序员群体,pb程序员还是偏少的,估计使用java程序员数量第一。
在传统C/S模式下开发HIT软件,pb还是具有很大的优势。pb编程语言最大的特点,如何利用数据窗口(datawindow)完成增、删、改、查操作。
下面举例数据窗口一般用法,估计勾起不少HIT人的回忆:
第一步:新建一个datawindow对象,一般datawindow对应一个sql。
第二步:将datawindow放入一个window窗体中,用一个数据窗口控件来引用,比如dw_1。
第三步:在window窗体open事件中,设置连接对象。
//设置连接对象
dw_1.SetTransObject(sqlca);
第四步:如果有对数据窗口中的数据,进行增、删、改操作,可以调用数据窗口的update方法可以了。我们不需要考虑数据并发性问题,pb已经做了很好的控制。
当然以上是一个最简单的例子,实际开发过程中,有些功能的开发并不简单。
虽然pb已经不再是主流,但是它的简单、高效,让我印象深刻。我平时会在一些自动化运维、比较复杂的报表、弥补HIT的缺失功能,还是会用pb来解决实际问题。
自动化运维:HIT不可能做到尽善尽美,有各种需要处理,典型需要后台维护数据的问题 ,对于经常出现的问题,如果能标准化处理,我会把它们用程序把这些方法固定下来,提高效率。
复杂的报表:我知道现在市面上有很多报表工具,对于一般的报表来说都是满足需求的,但是有一些高级的报表,还是编程语言来的方便,处理这种复杂的报表,编程语言是最好的工具。
HIT的功能缺失:有一些比较简单的缺失模块、比较急着使用,我会做一些山寨功能来实现,临时使用,“江湖救急”,如果后来买了相应软件模块,就会停用之前开发的“山寨模块”。