* The web solved the software distribution problem. There were some pretty good tools for building GUI apps in the 90s but the tools for getting software to the customer sucked. Complex installers, no autoupdates, "DLL hell" incompatibilities.
* There never really were any great tools for building cross-platform GUIs. You built for Windows on x86, that was it. Widgets were shipped as binary COM components. Now you need to be on multiple OSes, multiple hardware architectures, and multiple form factors. VB wasn't going to give you that.
* Formatting text sucked. Actually, formatting in general sucked - the RAD GUI builders built awesome fixed-size dialogs, but now screens vary from watch-sized to wall-sized. Embedded HTML components really made layout easier... and once you start putting things in HTML, it tends to take over.
* All those pretty 3d effects in Win 95 UIs? Those were a bitch to get right. Hours of trial and error drawing extra lines of black and white and grey pixels. It looked good but it was a lot of effort that would have been better spent building real features.
Except that never actually works, for anything but the lowest common denominator trash apps. Unfortunately people are convinced that this is something that should be pursued; the only real result is lowering the bar across the board and eroding compliance with long-established platform UX guidelines.
- expand to consume every new use case and buzzword that comes along. Survive in some form indefinitely, while the product becomes less concrete and meaningful over time. The product continues to succeed not because it is technically best in class any more, but sheer momentum of the large base of existing users it serves adequately
- remain focused to the original mission, delivering iterative improvements over time. Watch waves of loyal users get eaten away one after another by the tide of the current technological buzz
VB was mostly the second case, although it did have many cousins in the form of VBA and ASP. The original tool - VB itself, was only ever relevant to desktop computing. By the time it got merged into Visual Studio, I believe the RAD aspect of the tool had already mostly disappeared (although VS even today still offers some variety of the original experience!)
VB in its prime was a beautiful thing, and the experience AFAIK remains unmatched to this very day. I've pined for a "client/server VB" on many occasions.
Agree about the experience being unmatched. Compare it to Android Studio which is supposed to be the modern flagship from the competition, even 15 year old versions of Visual Studio provides much smoother RAD experience. No matter how good code editing in IntelliJ is, everything around it with gradle slowness and app relaunches just makes you look back and wonder what happened to technological progress.
I have the feeling this is the main reason, yes.
Even before all this happened I remember articles about software companies yearning/pleading for subscription revenue, but customers were not interested. The web allowed them to turn the tables on expectations.
A few advancements, such as excellent UI consistency were left behind though.
I know a bunch of people who started doing web stuff with the rise of Flash.
- Very few use the desktop as their primary computer interface now compared to back then.
- We keep abstracting. The web browser has almost entirely abstracted away the OS. You run Windows 7, or OS X? Who cares, just log into this web page and do your thing there.
C#/VB with WinForms was the successor to VB6 and doesn’t sacrifice much in terms of development speed but added a lot of modern conveniences (high dpi etc..) that would have cost too much to add to VB6.
Perhaps better examples of things that were difficult to shoehorn into VB6 apps but first class in WinForms: multithreading, x64, Unicode.
Also deliver binary executables has a huge attack surface of virus. Web is considered "safer"