As I don't really know Visual Studio, I did a very personal list of PB Native (classic)
pros and cons, so that everyone reading it can compare and contrast his favourite
development environment with Powerbuilder. I currently use PB 11.5.1.
(I'm not considering PB.NET here because of its poor performance and long-term strategic issues)
Pros:
RAD GUI development
Very fast, very easy
In-depth help with examples to get you started
SQL development, with visual query tool
MDI applications
Datawindow
Simplicity
Powerful builtin commands (easy insert/update/delete )
Good performance even on millions of records
Takes care of all problems and returns a simple error code
Reporting
ETL with pipelines
Client/Server Development (especially ODBC over LAN)
Built in debugger, even if it's quite old
High level and open handed community
Can't really do:
Linux
Manual memory handling (pointers)
Multithreading
Builtins for Lists, queues, B-trees of any datatype that doesn't fit in a datawindow
Interfaces
Templates
Lambda functions
Operator overload
Embedded programming
Drivers development
Real-time computing
Can't do without tools, still being hard to very hard to work with:
Web ( Appeon Web uses .NET and Java on IIS and costs x000$ )
Mobile ( Appeon Mobile costs x000$ too )
Fast heavyweight string manipulation ( Novalis uses C++ for Enable )
Regular expressions (Sébastien Kirche uses C++ through PBNI, I use JScript )
Callbacks (PBNI C++, PBInvoke)
XML parsing ( Datawindows are limited to 2 levels nesting, PBDOM is C++ )
Runtime object serialization / deserialization (We've done it in JS.NET)
Console applications with access to StdIn and Stdout ( C++ through PBNI )
Dynamic code execution ( see www.embeddingperl.com, PBNI, Perl or VB/JScript needed )
User level reports creation ( like Crystal Reports or the one from Novalis )
Custom controls (C++)
Modern graph controls for BI reports ( Crystal Dashboard, HTML + JS + CSS)
OpenGL (PBNI C++)
Early bound COM (QueryInterface())
Sockets, FTP, SMTP, SSH
Web services (requires .NET)
Image library ( plot, filters, SVG )
Windows Event Log
NoSQL databases
Object-Relation mapping ( Powerdesigner? )
Test Driven Development
Could have been done better:
Null handling ( string + null = null )
Structures
Compiler - has lots of regeneration issues. PowerGen costs 2000$
Garbage collection. Never rely on it, just CREATE and DESTROY.
Arbitrary decimal precision. Try "ceiling( 40.0 / 8 )": PB tells you it's 6.
PBL format: proprietary and obscure package of source code + semicompiled sections
The Datawindow mixes application, presentation, interaction code
InterProcess Communication
Source Code Control integration ( ProDiff needed at least to compare objects )
Powerbuilder Native IDE has been looking the same since PB 9
hopefully this will change in PB 15
IDE editor - looks like Notepad with autocompletion
Exception handling, it's just a stub. Most functions fail with return code even on critical error.
Direct3D
Windows Services
Window layout and autoresizing
String formatting ( where is a serious printf/scanf? )
Deployment and packaging
Loops. There is no "foreach", no iterators...
Other environments have:
Very huge opensource libraries:
Scientific (SciPy)
Imaging, Audio, Video
Distributed messaging (ZeroMQ)
Operations Research
IDE plugins
... enter your favs here.