适用于Java程序员的PowerBuilder?

时间:2009-03-03 08:59:42

标签: java powerbuilder

我的一位朋友在他的公司中使用了一个用PowerBuilder编写的ERP软件。不幸的是,(唯一的)开发商即将退休。我的朋友真的很喜欢这个软件,并希望继续使用它至少十年,所以我的朋友决定购买源代码。

他希望开展业务以维护软件并开发新功能。目前,大约有50个软件安装在野外,他已经知道了许多潜在买家。

现在他正在寻找开发人员并问我......我做了一些C / C ++编程,一些VB和一些其他语言,但在过去几年里,我通过编写Java Web应用程序赚了我的钱。 从我读到的内容来看,PowerBuilder对我来说看起来很陈旧,几乎没有任何教程,没有开源框架,笨拙的版本控制,甚至没有读过任何测试框架。 StackOverflow的人们说他们希望语言/ IDE已经死了。此外,我维护的代码完全没有记录,未经测试。

对于那些以前从未听说过PowerBuilder的人来说,您认为维护这样的软件是否可行?

编辑:好的,谢谢你的回答。我们决定完全启动旧应用程序并用最新语言重新编写它。

8 个答案:

答案 0 :(得分:7)

是的,这是可能的。 Powerbuilder不是一种难以接受的语言,特别是如果你已经使用过VB。

Powerbuilder社区远比您习惯使用的社区要小得多。 Java,但确实存在。提问的最佳位置(除了SO!)是sybase.public.powerbuilder.*新闻组。

对于单元测试,请尝试PowerUnit,对于源代码管理,您可以通过PBSCCProxyTamTam SVN SCCPushOK SVN SCC proxy使用Subversion。

这是很长一段时间以来的利基语言。在我看来,这是由于所需工具的前期成本,这实际上阻止了任何新人考虑它。

未来相当明亮:Sybase is flourishing,致力于PowerBuilder,并定期宣布第12版的进展,这将是一个完整的.NET语言,如C#和VB.NET,并将附带{{3 }}。您将能够直接将代码迁移到版本12,不需要重写。

答案 1 :(得分:7)

我作为PowerBuilder开发人员开始了自己的职业生涯,但一旦我意识到PB几乎是一种死语言,我很快就改为java和python。

此外,即使有可用于应用编程“良好实践”的工具,它们也不是众所周知且有些昂贵,所以即使没有版本控制(!!)我也必须工作,不要自动化测试或持续集成。

这种语言几乎任何人都可以在很短的时间内开始构建可用的应用程序并且几乎没有培训,并且应用程序构建得非常快,与java相比,需要一段时间的学习直到开发人员可以提高效率,即使这样,webapp也需要时间来开发。

但回报与维护有关,很快就会成为一场噩梦。即使像数据库列中的类型更改这样的数据库中的微小更改也可以破坏引用它的每个数据窗口(PB无处不在的数据访问组件)。

它与VB非常相似,因为几乎任何人都可以在其中开发应用程序,只需很少的编程知识,应用程序的平均质量非常低,数据库耦合难以管理,并且编码错误的编码习惯。

我的建议不是以这种语言建立开发人员的职业生涯,除非钱能够证明这一点,并且在这种情况下,继续培养自己的替代技术作为“计划b”,以免与语言一起过时。< / p>

并且始终努力使您的编码和解决问题的技能“保持良好状态”,因为这种语言并没有帮助。

答案 2 :(得分:6)

是的,任何有能力的程序员,甚至一些不那么称职的程序员都可以使用PowerBuilder。但是,我对之前的一个答案有点不同意。它与pre-.Net VB在某种意义上不同:它支持真正的OO原则(封装,继承和包含多态[但不是通过接口的操作多态性,如在C#和Java中])。经典VB没有继承。

Paul Lefebvre和Colin Pickard的其他答案都是正确的:PB虽然比现在更像是一种利基语言,但它仍然存在,而Sybase确实将它转向了.Net的方向。至于源代码控制,PB支持一些接口(我们将它与VSS一起使用),但我很感谢Colin的一组很好的链接,这些链接在将来可能会派上用场。

框架:最常见的是PowerBuilder基础类,Sybase几年前开源。

我对你的警告是这样的:我上面说过,人们不必特别强大的程序员来写PB。 PB很容易学习,但需要时间掌握。它有一个最大的日子在90年代后期,当任何人可以双击Windows图标启动应用程序认为他们是程序员。尽管真正支持OO,但大多数PB应用程序并没有精心设计和编写良好的应用程序。他们通常是完全黑客的工作(批评缺乏经验丰富的开发人员和当时软件开发的不成熟,而不是PB本身,这仍然是一个非常强大的工具)。如果您继承的代码库非常容易维护和管理,那么您就属于少数。 PB代码几乎总是被归类为遗留代码。好消息是有很多挑战。您将获得许多快速重构的机会和充足的生产支持。

答案 3 :(得分:3)

由于存在偏见的风险,我认为PB是最好的RAD工具之一,明年安排的新版PB12将再次引起人们的兴趣,因为它使用Visual Studio的VSShell作为其新的IDE(Intellisense等) )。我目前正忙着在编译器团队中工作,将所有.NET好东西添加到PowerScript中,用于从C#中学习代理,接口,属性等,但仍保持语言简单易用。 PB也是少数几个提供从旧版本到新版本迁移的开发平台之一,新的PB12也不例外。 PB12生成的应用程序将使用WPF和后来的Silverlight用于PB12后现代外观,所以我很兴奋。我不是一个PB开发人员本身(C ++),但我仍然认为快速生成C / S应用程序很难被击败。

答案 4 :(得分:3)

取决于原始应用程序的技术质量,是否可以迁移到另一种语言。

在您阅读我的“PB IS GOOOD”之前:自93年以来,我就是PowerBuilder开发人员。 PowerBuilder非常活跃。是的,很多人在千禧年后不久就离开了这种语言,但很多人后来又回来了。不,我不赚钱卖PB!

PowerBuilder应用程序与任何其他工具之间的最大区别是DataWindow技术。它是知识渊博的开发人员手中的强大工具。示例:为INSERT / UPDATE / DELETE动态创建最佳SQL。靠近每个属性的东西都可以是使用DW缓冲区中的数据的表达式。 DropDown DW很酷。 DW和PB的其余部分真正独立于DBMS!

当我的许多DataWindows只需要4个函数调用时,代码完成有多重要?

  • 定义数据库连接&gt;&gt; dwData.SetTransObject(SQLCA)
  • 从DB&gt;读取所有数据&gt; dwData.Retrieve()
  • 将数据写入DB&gt;&gt; dwData.Update(true,false)
  • 提交时重置&gt;&gt; dwData.ResetUpdate()

我的打赌:如果原始开发人员知道如何真正利用DataWindows - 您在迁移到Java或C#时所做的任何估计甚至都不会接近实际发生的事情。如果他们不这样做:应用程序只是另一个应用程序,它以不同于新工具的方式进行数据绑定。

使用PowerBuilder时你松了什么?您需要接受4GL及其VM按原样设计 - 无法访问VM的源代码,因此您无法进行自己的VM自定义。不关闭NULL支持以提高速度。不通过重写VM的事件管理器来更改事件顺序。 4GL意味着更少的代码行。 DataWindow意味着更少的LOC。 4GL意味着更少的微调位调整。

/ MicKr- BTW:PocketBuilder是适用于Windows Mobile的PB - 很酷的想法!

答案 5 :(得分:2)

是的,你当然可以学习PowerBuilder。不过,无论你想要的是一个问题,你都可以回答。

我使用PowerBuilder很多年(版本4到9)。有一些我真正喜欢的部分。这是构建业务应用程序的好方法。它是面向对象的,DataWindow是一种很棒的技术。

但它也有不好之处。 IDE很古老。代码编辑器很简单(例如,没有代码完成)。与源代码控制集成很烦人,社区也很小。它只是Windows版本。

有一本杂志(PowerBuilder Developer's Journal - SYSCON),但这些日子还很薄。然而,对于未来版本的PowerBuilder,Sybase似乎确实有一些巧妙的东西。

就个人而言,我非常喜欢它,如果有机会,我会回到它。

答案 6 :(得分:1)

我曾经在powerbuilder上工作过6.5版本 它很容易使用,可以将它与VB进行比较。 我觉得维护一个应用程序并做一些小修复并增强系统是非常容易的。 有很多公司仍然使用powerbuilder并维护旧的应用程序。

答案 7 :(得分:1)

Powerbuilder非常简单,您会发现datawindows对象非常有助于制作报表,界面,表单等。

如果您了解visual basic,那将更容易

我在2个月内学会了powerbuilder。

powerbuilder的缺点是每个许可证的成本。