Java程序员能用PowerBuilder吗?

4
我有一个朋友在他的公司使用一款用PowerBuilder编写的ERP软件。不幸的是,这位(唯一的)开发人员即将退休。我的朋友非常喜欢这个软件,并希望至少再使用十年,因此他决定购买源代码。
他想要开展业务来维护该软件并开发新功能。目前可能已经有大约50个安装了该软件的实例,并且他已经知道了一些潜在的买家。
现在他正在寻找开发人员,并向我提出了问题......我做过一点C/C++编程,一点VB和一堆其他语言,但在过去几年中,我通过编写Java Web应用程序赚取了钱。 根据我所读的内容,PowerBuilder对我来说看起来相当古老,几乎没有任何教程,没有开放源代码框架,笨拙的版本控制,甚至没有听说过任何测试框架。StackOverflow上的人们说,他们希望这种语言/IDE已经死了。此外,我要维护的代码完全没有文档和测试。
你认为,对于从未听说过PowerBuilder的人来说,维护这样的软件可能吗?

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

8个回答

7
是的,这是可能的。Powerbuilder并不难学,特别是如果您已经使用过VB的话。
Powerbuilder社区比您所熟悉的Java等要小得多,但确实存在。除了SO之外,提问的最佳地点是sybase.public.powerbuilder.*新闻组。
对于单元测试,请尝试PowerUnit,对于源代码控制,您可以使用通过PBSCCProxyTamTam SVN SCCPushOK SVN SCC proxy使用Subversion。
长期以来,这一直是一种利基语言。我认为这是由于所需工具的前期成本很高,这实际上阻止了任何新手考虑它。
未来看起来相当光明:Sybase正在蓬勃发展,致力于PowerBuilder,并定期宣布向版本12的进展,该版本将成为与C#和VB.NET类似的完整的.NET语言,并将配备基于VisualStudio的IDE。 您将能够直接将您的代码迁移到版本12,无需重写。

1
关于重构以适应PB12的评论是不正确的,恐怕如此。PB12本身并没有任何内在的东西需要重构。我已经将应用程序迁移到PB12的预发布版本,甚至是WPF目标,而且完全没有进行代码更改。这并不是说不需要进行更改,例如,如果您的应用程序使用不再支持的功能(例如,在命令按钮上右键单击),则需要进行更改。这也不是说为了利用新功能而需要重构,但这在利用几乎任何新功能时都是正确的。Sybase有一些关于PB12的很好的网络研讨会记录值得一看。 - Terry

7
我最初从事PowerBuilder开发人员的职业生涯,但很快就转向了Java和Python,因为我意识到PB几乎已经是一门死语言了。
此外,即使有工具可以用来应用编程“好的实践”,它们并不广泛知晓,并且有些昂贵,所以我不得不在没有版本控制的情况下工作,更不用说自动化测试或持续集成了!
这是一种几乎任何人都可以在短时间内进行简单培训并开始构建可用应用程序的语言,而且应用程序的构建速度非常快。相比之下,Java需要一段学习期,直到开发人员能够提高生产率,甚至在此之后,Web应用程序的开发也需要时间。
但是回报是维护,这很快就会变成噩梦。即使是数据库中的微小更改,例如数据库列中的类型更改,也可能会破坏引用它的每个数据窗口(PB无处不在的数据访问组件)。
这与VB非常相似,因为几乎任何人都可以在其中开发应用程序,只需很少的编程知识,应用程序的平均质量非常低,具有难以管理的数据库耦合和充满了糟糕的编码实践。
我的建议是,除非薪水足够高,否则不要在这种语言中建立开发人员职业生涯,即使在这种情况下,也要继续培训自己以掌握替代技术作为“备选计划”,以免随着语言一起过时。
并且始终努力保持您的编码和问题解决技能处于“良好状态”,因为这种语言对此没有帮助。

6
是的,任何有能力的程序员,甚至一些不那么有能力的人都可以使用PowerBuilder。然而,我对早期回答中的某个观点持有不同意见。它与pre-.Net VB在一个方面上不同:它支持真正的OO原则(封装、继承和包容多态性[但不支持通过接口进行操作多态性,如C#和Java所支持的])。经典VB没有继承。
来自Paul Lefebvre和Colin Pickard的其他回答是正确的:PB仍然存在,虽然比过去更像一个利基语言,Sybase确实正在将其朝着.Net的方向发展。至于源代码控制,PB支持一些接口(我们使用它与VSS),但我很感谢Colin的一套不错的链接,这可能在未来会派上用场。
框架:最常见的是PowerBuilder Foundation Class,几年前Sybase开源了它。
我的警告是:我之前说过人们不需要特别强的编程能力来编写PB。PB易学难精。它在90年代晚期最辉煌的时期,当时任何能双击Windows图标启动应用程序的人都认为自己是程序员。尽管PB真正支持OO,但大多数PB应用程序并不是设计良好且编写良好的应用程序。它们通常是完全的hack工作(这是对当时缺乏经验丰富的开发人员和软件开发不成熟的批评,而不是对PB本身的批评,PB仍然是一个非常强大的工具)。如果你继承的代码库真的很容易维护和管理,那么你是少数派。PB代码几乎总是可以归类为遗留代码。好消息是,有很多挑战。您将有许多快速优化的机会和大量的生产支持。

3
这取决于原始应用程序的技术质量,是否可以迁移到另一种语言。PowerBuilder是一种非常强大的工具,其中最大的区别在于DataWindow技术。熟练的开发人员可以使用DataWindow动态创建最佳SQL,几乎可以使用DW缓冲区中的数据将任何属性设置为表达式。DropDown DW非常酷。DW和PB的其余部分确实是DBMS独立的!对于许多DataWindows仅需要4个函数调用时,代码完成有多重要呢?如果原始开发人员知道如何充分利用DataWindows,则迁移到Java或C#的任何估计都无法接近实际情况。如果他们不知道:应用程序只是使用与新工具不同的数据绑定的另一个应用程序。使用PowerBuilder时会失去什么?您需要接受4GL及其VM的设计方式-无法访问VM源代码,因此无法进行自定义VM。无法关闭NULL支持以提高速度。无法通过重写VM的事件管理器来更改事件顺序。 4GL意味着更少的代码行数。 DataWindow意味着更少的LOC。 4GL意味着减少了geaky位调整。

1
谢谢你的回答!我们决定重写这个应用程序,主要是因为缺乏文档和测试。我看了一下代码,真是一团糟。如果是在那样的代码基础上,我不会给PB一个机会... - Olvagor

3

我想说,虽然有点偏见,但我认为PB是目前最好的RAD工具之一,而明年发布的新版本PB12将使它再次变得更加有趣,因为它使用Visual Studio的VSShell作为其新IDE(包括Intellisense等)。我目前正在忙于编译器团队中,将所有.NET好处添加到PowerScript中,这些好处来自C#,例如委托、接口、属性等,但仍保持语言易于使用。PB也是少数几个提供从旧版本迁移到新版本的开发平台之一,新的PB12也不例外。由PB12生成的应用程序将使用WPF和稍后的Silverlight,看起来现代化,所以我感到非常兴奋。虽然我本人不是PB开发人员(C++),但我仍然认为在快速生产C/S应用程序方面,很难超过PB。


2

是的,您肯定能够学习PowerBuilder。但是否想要学习这个问题只有您自己才能回答。

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

但它也有不好的地方。IDE过时。代码编辑器简单(例如没有代码补全)。与源代码控制的集成令人讨厌,社区相当小。而且它仅适用于Windows。

有一本杂志(PowerBuilder Developer's Journal - SYSCON),但现在相当薄。然而,赛贝斯似乎在未来的PowerBuilder版本中有一些很棒的东西。

就我个人而言,如果有机会,我会回到它身边。


1

我曾经在一段时间内使用过PowerBuilder 6.5,它非常易于使用,可以与VB相媲美。 我认为维护应用程序并进行小修补和增强系统将会非常容易。 现在仍有很多公司使用PowerBuilder并维护旧的应用程序。


1

PowerBuilder非常容易使用,您会发现数据窗口对象非常有助于制作报表、接口、表单等。

如果您了解Visual Basic,那么使用PowerBuilder将更加容易。

我在两个月内学会了PowerBuilder。

PowerBuilder的一个缺点是每个许可证的成本较高。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接