Cerner's CoPath Plus is written in PB and it's atrocious. I had to pull the CoPAth VM servers out of the DC because we needed to move them, and if the IPs changed, Cerner couldn't tell us what might happen. Literally I was told, "we don't support changing IP addresses, we don't know what would happen, we'd have to reinstall the application on new servers and move the data."
I asked how much that would cost. They said $25,000. For four VMs. The main app server, a DB server, and two webservers that serve reports to the outside world. $25k to reinstall the app we already paid for and pay a support contract for.
In the same way they'd hate bad apps written in any other framework.
PowerBuilder's honest biggest problem is that it was likely used by internal and consultant teams looking to quickly deliver value, sometimes to the detriment of solid architecture decisions. And that the resulting applications have been useful enough that people are still running them (without updates) a couple decades later.
Powerbuilder offered ROI like nothing else in that era if you needed custom software in your business.
It's interesting that the currently-hot idea of Entity Framework was the core advantage of Powerbuilder with the Datawindow. It still feels like the web is catching up to Powerbuilder in some ways.
Pity they don't open source the thing and maybe some life could be breathed into it.
PowerBuilder is (was) an extremely powerful rad tool. The datawindow still has no rivals for crud operations on data and for reports.
The web has taken over, but the productivity this tool gives you is nowhere to be found in the modern dev stacks.
To be honest, I don't hate it. It wouldn't be my first choice as a tool, but it really wasn't bad. It certainly made trade offs...but I can't remember any time I thought a design decision was "terrible".
The IDE view would allow you to select a function to view / modify via a dropdown list - it wouldn't jump to the section in code but be roughly similar to the usefulness of a one-function-per-file methodology might seem in Visual Studio, but without the Ctrl+Tab.
That in itself wouldn't have been completely horrible if you could actually navigate while the previous buffer had invalid code, or just had an intellisense equivalent that actually worked. Alas, if you couldn't remember some function or global variable name you'd need to comment out enough code to get the file into a buildable state in order for you to use your mouse to select the appropriate item from the function dropdown list in order to view the relevant section of code elsewhere within the same class file.
There was also inconsistent build behavior, I gather most compiled languages contain reference errors or similar when performing incremental builds but this fucker would actually fail mid build for no apparent reason - load it back up and rebuild the same stuff and it'd all work fine. It wasn't my computer, all devs had similar issues across multiple operating systems and minor revisions.
The application itself also had a crazy inheritance (think WYSIWYG objects with 8+ ancestors) and event hierarchy (pre-event, event, post-event. pre-save, save, post-save) which I think was sortof an immature OO and GUI ideals, implemented poorly. In powerbuilder terms this meant that not only did I have 400 events in my dropdown list of stuff that I can't access unless I create massive code blocks, but there was a second dropdown containing an equally crazy inheritance hierarchy with 400 functions at each level.
Oh, also don't forget that functions do not implicitly call their ancestors, but events do (or was it the other way around, I've tried my best to block this out of memory).
Needless to say, I bailed for greener pastures, I've since lost contact with everybody there but occasionally I check their website - they added some screenshots of the new application sometime in 2014 but I still can't find any indication it's actually sold to clients. I'm sure there are people out there that say Powerbuilder wasn't that bad, but personally I'd rather code in VB6.
One of my first jobs as a grad was to build a telnet interface into a PB app. Fun times.