Search code examples
migrationpowerbuilderpowerbuilder-conversion

Powerbuilder 10.5: upgrade or migrate away?


We've recently started to support a PowerBuilder 10.5 application and the question has come whether or not we should think about alternatives or keep the app running in PB 10.5. It is a classic PB app; an administrative software, build upon an Oracle DB.

Right now, the app works great, but there are two reasons why we reconsider:

  1. The sole developer of this app is about to retire. He's the only one who has all the PB-knowledge to support this app.
  2. We might want to improve the offered services of the app. So integrations with other tools are right around the corner.

I'm not very familiar with PB, but I've read it (only the newest versions) is now supported by Appeon. The latest version is now 2017 R3, with a 2019 version coming up.

I'm wondering what the pro's & con's are of trying to update the current 10.5 version to the latest version. Is it worth it to update? Or what are the pro's & con's of sticking to the 10.5 version?

Or should we consider moving to a newer technology, since so few Powerbuilders are to be found nowadays? And if so, what technology would you advise?

Rather than just differences between the older and newer PB-versions, I'm looking for motivations to upgrade/migrate/do nothing at all.

Thanks.


Solution

  • So, there's no clear cut answer, but we can throw around some ideas on the non-technical bullet points (as requested).

    Staying on 10.5: There's a lot to be said for "if it ain't broke, don't fix it." If it works and you're happy with what it does, don't move it.

    However, since you've said that you're planning on moving it forward, you might want to consider that 10.5 doesn't support current operating systems (within a year, Windows systems currently supported by MS will be only Win8 and Win10), which were nothing but figments of imagination when 10.5 was out. Your 10.5 app may work on Win10 now, but that's solely because of MS's work on backward compatibility for apps, and that you haven't leveraged an area in PB that had a problem in a then-future version of Windows. If you need to add functionality, being on a version that at least suggests that it works on your operating system could be helpful.

    Parallel argument for databases, the exception being that if your app uses SQL Anywhere, the database that used to come for free in several PB packages. It is now something you'd have to purchase separately.

    One thing to remember about trying to move forward with an old version of anything is support. If you get stuck, the vendor will basically not talk to you, and the peer community has been shrinking, so you've got less chance of getting into a dialog with fellow developers.

    Upgrading: Upgrading is usually a minor effort. The most frequent reasons I've seen exceptions to this: deprecated functionality, and coding that depends on behaviours that didn't stay consistent between versions (some behaviours are promised to stay consistent, but not all). Run a migration test with a trail version with your PB expert to get that question off the table.

    One thing to keep in mind when upgrading is that the licensing model has changed. PB used to have a perpetual model (buy once, use forever), but it's now a subscription model. Whether this is an improvement for you or not is up to you to figure out.

    Whether it is "worth it" to upgrade, in my mind it usually boils down to

    • OS support
    • DB support
    • vendor support
    • peer support
    • deprecated features, and whether I use them
    • new features, and whether I would use them (and you asked us not to discuss these last two items, which need to be weighed very individually anyway, and are well documented on Appeon's site)

    "Migrating": I've put "migrating" in quotes, because I don't believe there's a technology that lets you "migrate" in the sense of a code translation. (I'll let you read one of my old tirades about wanting to "migrate" off PB.) What I'll talk about here is rewriting in a new technology. Both pulling business rules out of an old PB system and redesigning/rewriting in another technology is a big effort.

    The biggest argument in favour these days is getting and keeping PowerBuilder talent. Getting people with PB under their belt is hard, and judging legitimate talent is challenging, even with someone with PB on your side of the interview table. (Leverage your retiring guy if you want to move forward with PB.) Training someone with PB is no small task either. Someone once asked me, not an educator, if I could come up with a course and train his team in a week. I laughed. After a two week course designed and given by professional educators from the then-vendor Powersoft, I came home and wrote incredibly embarrassing code. I also needed lots of time practicing, and getting feedback from my peers. If you can get someone or train someone, if they are only doing PB work a couple of weeks per year, those PB "muscles" will atrophy. No matter the technical arguments of PB vs something else, if you can't get PB talent to maintain it, PB is a dead end.

    I'm afraid I'm not one to suggest an alternative technology. It used to be that, in terms of of rich client apps, you couldn't go wrong with choosing Microsoft, but since then, MS has sent the development community on some wild goose chases, that have ended in deprecated technologies. I wouldn't want to be the guy looking into the future to guess.

    Good luck.