适用于 Java 程序员的 PowerBuilder?
我的一个朋友在他的公司使用一个用 PowerBuilder 编写的 ERP 软件。 不幸的是,(唯一的)开发人员即将退休。 我的朋友非常喜欢这个软件,并且想继续使用它至少十年,所以我的朋友决定购买源代码。
他想开一家公司来维护软件并开发新功能。 目前,该软件的安装量大概有 50 左右,而且他已经知道了很多潜在买家。
现在他正在寻找开发人员并问我...我做了一点 C/C++ 编程、一点 VB 和一堆其他语言,但在过去的几年里,我通过编写 Java Web 应用程序赚钱。 从我读到的内容来看,PowerBuilder 对我来说看起来相当过时,几乎没有任何教程,没有开源框架,笨拙的版本控制,甚至没有阅读任何测试框架。 StackOverflow 上的人们表示他们希望该语言/IDE 已经死了。 此外,我维护的代码完全没有记录且未经测试。
您认为对于一个以前从未听说过 PowerBuilder 的人来说,有可能维护这样一个软件吗?
编辑:好的,谢谢您的回答。 我们决定完全抛弃旧的应用程序并用最新的语言重新编写它。
A friend of mine uses in his company an ERP software written in PowerBuilder. Unfortunately the (one and only) developer is going into retirement soon. My friend really likes the software and wants to keep using it for at least ten more years, so my friend decided to buy the source code.
He wants to start a business to maintain the software and develop new features. At the moment there are probably about 50 installations of that software out in the wild and he already knows of a bunch of potential buyers.
Now he's searching for a developer and asked me... I did a little C/C++ programming, a bit of VB and a bunch of other languages but in the last years I earned my money by writing Java web applications.
From what I read, PowerBuilder looks quite antiquated to me, there are hardly any tutorials out there, no open source frameworks, awkward version control, didn't even read about any test frameworks. People here on StackOverflow say they hope, the language/IDE is dead. Additionally the code I'd maintain is completely undocumented and untested.
Do you think it's possible, for someone who never even heard of PowerBuilder before, to maintain such a software?
EDIT: okay, thanks for your answers. We decided to kick the old application completely and re-write it in an up-to-date-language.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
是的,这是可能的。 Powerbuilder 并不是一门难学的语言,特别是如果您已经使用过 VB。
Powerbuilder 社区比您所习惯的 Java 社区要小得多,但它确实存在。 提问的最佳地点(除了 SO!)是 sybase.public.powerbuilder.* 新闻组。
对于单元测试,请尝试 PowerUnit,对于源代码控制,您可以通过 PBSCCProxy,TamTam SVN SCC,或 PushOK SVN SCC 代理< /a>.
很长一段时间以来,它一直是一种小众语言。 在我看来,这是由于所需工具的前期成本,这基本上阻止了任何新人考虑它。
不过,未来还是相当光明的:Sybase 正在蓬勃发展,致力于 PowerBuilder,并定期宣布进展面向版本 12,这将是一个完整的 .NET 语言,如 C# 和 VB.NET,并将附带 基于 VisualStudio 的 IDE。 您将能够直接将代码迁移到版本 12,无需重写。
Yes, it's possible. Powerbuilder is not a hard language to pick up, particularly if you have used VB already.
The Powerbuilder community is far smaller than what you may be used to with e.g. Java, but it does exist. The best place (other than SO!) to ask questions are the sybase.public.powerbuilder.* newsgroups.
For unit testing, try PowerUnit, and for source control, you can use Subversion via PBSCCProxy, TamTam SVN SCC, or PushOK SVN SCC proxy.
It's been a niche language for a long time now. In my opinion this is due the upfront cost of the tools required, which is essentially blocking anyone new from considering it.
The future is reasonably bright though: Sybase is flourishing, committed to PowerBuilder, and regularly announcing progress towards version 12, which will be a full .NET language like C# and VB.NET, and will ship with an IDE based on VisualStudio. You will be able to directly migrate your code to version 12, no rewrites required.
我的职业生涯始于 PowerBuilder 开发人员,但当我意识到 PB 几乎是一种消亡的语言时,我很快就转向了 java 和 python。
另外,即使有一些工具可以用来应用编程“良好实践”,但它们并不广为人知,而且有些昂贵,所以即使没有版本控制(!!),我也必须工作,抛开自动化测试或连续测试一体化。
它是一种语言,几乎任何人都可以在短时间内开始构建可用的应用程序,只需很少的培训,并且应用程序的构建速度非常快,与 Java 相比,需要一段时间的学习,直到开发人员能够高效工作,即便如此,开发一个网络应用程序也需要时间。
但回报是维护,这很快就会变成一场噩梦。 即使数据库中的微小更改(例如数据库列中的类型更改)也可能会破坏引用它的每个数据窗口(PB 普遍存在的数据访问组件)。
它与 VB 非常相似,因为几乎任何人都可以用它开发应用程序,只需很少的编程知识,应用程序的平均质量非常低,数据库耦合难以管理,并且受到不良编码实践的困扰。
我的建议是不要用这种语言建立开发人员职业生涯,除非金钱证明它是值得的,在这种情况下,继续在替代技术方面进行自我培训,作为“B 计划”,以免与该语言一起过时。
并且始终努力保持您的编码和解决问题的技能“处于良好状态”,因为这种语言对此没有帮助。
I started my career as a PowerBuilder developer, but quickly changed to java and python, as soon as I realized PB was almost a dead language.
Also, even if there are tools that can be used to apply programming "good practices", they are not widely known and somewhat expensive, so I've had to work even without version control (!!), left aside automated testing or continuous integration.
It is a language in which almost anyone can start to build usable apps in a short period of time and with little training, and the apps are built really fast, in contrast with java, that demands a period of learning until a developer can be productive, and even then, a webapp takes time to be developed.
But the payback is with maintenance, that quickly becomes a nightmare. Even a minor change in the database like a type change in a database column can destroy every datawindow (the PB ubiquitous data-access component) that refers to it.
It's pretty much similar to VB, in that as almost anyone can develop applications in it, with very little programming knowledge, the average quality of applications is very low, with unmanageable database coupling and plagued of bad coding practices.
My advice is not to build a Developer career in such kind of language unless the money justifies it, and in that case, continue training yourself in alternative technologies as a "plan b" to not become obsolete along with the language.
And always work to keep your coding and problem solving skills "in good shape" as this kind of language does not help in that.
是的,任何有能力的程序员,甚至一些不太有能力的程序员都可以使用 PowerBuilder。 然而,我有点不同意之前的答案之一。 它在某种意义上不同于 .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 仍然是一个非常强大的工具)。 如果您正在继承一个真正易于维护和管理的代码库,那么您属于少数。 PB 代码几乎总是可以归类为遗留代码。 好消息是挑战很多。 您将拥有许多快速获胜的重构机会和充足的生产支持。
Yes, any competent programmer, and even some not-so-competent ones can use PowerBuilder. However, I'd disagree somewhat with one of the earlier answers. It is different from pre-.Net VB in one sense: it supports true OO principles (encapsulation, inheritance, and inclusional polymorphism [but not operational polymorphism via Interfaces as in C# and Java]). Classic VB didn't have inheritance.
Other answers from Paul Lefebvre and Colin Pickard are correct: PB is still alive though more of a niche language than it used to be, and Sybase is indeed moving it in the direction of .Net. As for source control, PB supports some interfaces (we use it with VSS) but I'm thankful for Colin's nice set of links, which may come in handy in the future.
Frameworks: the most common one is the PowerBuilder Foundation Class, which Sybase open sourced years ago.
My caveat to you is this: I said above that people didn't have to be particularly strong programmers to write PB. PB is easy to learn but takes time to master. It had its biggest days in the late 90's, when anyone that could double-click on a Windows icon to launch an app thought they were a programmer. Despite truly supporting OO, most PB apps are not well designed and well written apps. They're usually total hack jobs (a criticism of the lack of experienced developers and immaturity of software development at the time, not of PB itself, which is still a very powerful tool). If you are inheriting a code base that is truly easy to maintain and manage, you are in the minority. PB code can nearly always be classified as legacy code. The good news is that there is plenty of challenge. You will have many quick-win refactoring opportunities and plenty of production support.
冒着听起来有偏见的风险,我认为 PB 是更好的 RAD 工具之一,计划于明年推出的新版本 PB12 将再次使其变得有趣,因为它使用 Visual studio 的 VSShell 作为其新的 IDE(Intellisense 等)。 我目前正忙于在编译器团队中工作,将所有 .NET 功能添加到 PowerScript 中,这些功能在 C# 中使用,例如委托、接口、属性等,但仍保持该语言易于使用。 PB 也是少数提供从旧版本到新版本迁移的开发平台之一,新的 PB12 也不例外。 PB12 生成的应用程序将具有现代外观,使用 WPF 以及后来用于 PB12 后的 Silverlight,所以我非常兴奋。 我本身不是 PB 开发人员(C++),但我仍然认为快速生成 C/S 应用程序很难被击败。
With the risk of sounding biased I think PB is one of the better RAD tools out there and the new version PB12 scheduled next year will make it once again interesting since it uses the VSShell from Visual studio as its new IDE (Intellisense etc). I am currently busy working in the compiler team adding all the .NET goodies to PowerScript that one is used to from C# like delegates, interfaces, attributes etc but still keeping the language simple to use. PB is also one of the few development platforms that provide migration from older to newer versions and the new PB12 is no exception. The applications generated by PB12 will be modern looking using WPF and later Silverlight for post PB12 so I am quite excited. I am not a PB developer per se (C++) but I still think for producing C/S apps fast its hard to beat.
迁移到另一种语言是否可行取决于原始应用程序的技术质量。
在您阅读我的“PB 很棒”之前:我从 93 年开始就是一名 PowerBuilder 开发人员。 PowerBuilder 非常活跃。 是的,很多人在千禧年之后不久就离开了这门语言,但也有不少人后来又回来了。 不,我不靠卖 PB 赚钱!
PowerBuilder 应用程序与任何其他工具之间的最大区别是 DataWindow 技术。 对于知识渊博的开发人员来说,这是一个非常强大的工具。 示例:动态创建用于 INSERT/UPDATE/DELETE 的最佳 SQL。 接近所有事物的每个属性都可以是使用 DW 缓冲区中的数据的表达式。 DropDown DW 太酷了。 DW 和 PB 的其余部分是真正独立于 DBMS 的!
当我的许多 DataWindows 只需要 4 个函数调用时,代码完成有多重要?
我敢打赌:如果最初的开发人员知道如何真正利用 DataWindows - 您对迁移到 Java 或 C# 所做的任何估计都不会接近实际发生的情况。 如果没有:该应用程序只是另一个应用程序,其数据绑定方式与您的新工具不同。
使用 PowerBuilder 时您会失去什么? 您需要接受 4GL 及其 VM 的设计原样 - 无法访问 VM 的源代码,因此您无法进行自己的 VM 自定义。 无需关闭 NULL 支持来提高速度。 无需通过重写 VM 的事件管理器来更改事件顺序。 4GL 意味着更少的代码行。 DataWindow 意味着更少的 LOC。 4GL 意味着更少的令人讨厌的位调整。
/MicKr-
顺便说一句:PocketBuilder 是 Windows Mobile 的 PB - 很酷的主意!
It depends on the technical quality of the original application whether migrate to another language is feasible at all.
BEFORE YOU READ MY "PB IS GOOOD": I'm a PowerBuilder developer since '93. PowerBuilder is very much alive and kicking. Yes a lot of people left the language shortly after the millenium but quite a few have returned later. No I don't earn money selling PB!
The biggest differentiator between PowerBuilder applications and any other tool is the DataWindow technology. It is such a strong tool in the hands of an knowledgeable developer. Examples: Dynamic creation of optimal SQL for INSERT/UPDATE/DELETE. Close to every property of everything can be an expression using data in the DW buffers. DropDown DWs are so cool. DW and the rest of PB is truly DBMS independent!
How important is code completion when many of my DataWindows only need 4 function calls anyway?
My bet: If the original developers knew how to really exploit DataWindows - any estimates you make on migration to Java or C# will not even come close to what will actually happen. If they didn't: The application is just another application that does data binding differently than your new tool.
What you loose when using PowerBuilder? You need to accept that the 4GL and its VM are designed as they are - no access to the source code of the VM so you can't make your own VM customizations. No turning off the NULL support to increase speed. No changing the event order by rewriting the VM's event manager. 4GL means less lines of code. DataWindow means a lot less LOC. 4GL means less geaky bit tweaking.
/MicKr-
BTW: PocketBuilder is PB for Windows Mobile - cool idea!
是的,您当然能够学习PowerBuilder。 不过,您是否愿意是一个只有您可以回答的问题。
我使用 PowerBuilder 很多很多年了(版本 4 到版本 9)。 有些部分是我真正喜欢的。 这是构建业务应用程序的好方法。 它是面向对象的,并且数据窗口是一项很棒的技术。
但它也有其缺点。 IDE 已经过时了。 代码编辑器很简单(例如没有代码完成)。 与源代码管理的集成很烦人,而且社区很小。 而且它仅适用于 Windows。
有一本杂志(PowerBuilder Developer's Journal - SYSCON),但现在它很薄。 不过,Sybase 似乎确实为未来版本的 PowerBuilder 准备了一些巧妙的东西。
就我个人而言,我非常喜欢它,如果有机会我会回去。
Yes, you would certainly be able to learn PowerBuilder. Whether you want to is a question only you can answer, though.
I used PowerBuilder for many, many years (versions 4 through 9). There were parts I truly liked. It's a great way to build business applications. It's object-oriented and the DataWindow is a wonderful technology.
But it has its bad points as well. The IDE is archaic. The code editor is simplistic (no code completion, for example). Integration with source control is annoying and the community is pretty small. And it's Windows-only.
There is a magazine (PowerBuilder Developer's Journal - SYSCON), but it's pretty thin these days. Sybase does appear to have some neat things up their sleeves for future versions of PowerBuilder, however.
Personally, I liked it enough that I would go back to it if an opportunity arose.
我很久以前就在 powerbuilder 上工作过,版本 6.5
它非常容易使用,可以将其与VB进行比较。
我觉得维护应用程序、进行小修复和增强系统会非常容易。
有相当多的公司仍在使用powerbuilder并维护旧的应用程序。
I worked on powerbuilder quite sometime back, version 6.5
Its quite easy to use and one can compare it to VB.
I feel it would be quite easy to maintain an application and do small fixes and enhance the system.
There are quite a few companies that still use powerbuilder and maintain old application.
Powerbuilder 非常简单,你会发现 datawindows 对象对于制作报表、界面、表单等非常有帮助。
会更容易
如果你了解 Visual Basic,那么我在 2 个月内学会 powerbuilder
。 powerbuilder 的缺点是每个许可证的成本。
Powerbuilder is very easy, and you will find datawindows objects very helpfull to make reports, interfaces, forms, etc..
If you know visual basic, it will be easier
i learned powerbuilder in 2 months.
A disadvantage of powerbuilder is the cost per license.