Comment by ladyanita22
2 years ago
I see lots of comments about how good VB6 was. I agree it made programming super-easy and practical.
However, it is evident to me how the whole thing fell appart by the late 2000's, and now we have much more powerful, yet complex programming environments:
- Rust, C, C++: Extremely complex but powerful.
- HTML, JS, CSS: You have to learn 3 different technologies and won't be able to leverage the easy, powerful native APIs the OS provides. It's cross-platform though.
- .net: Not as easy as VB6 (and C# becomes actually more and more complex, more powerful as well, though). You have to learn XAML as WinForms is still a thing but considered legacy.
- Python: Easy (maybe more than VB, but not by much?), but no native, easy GUI toolkit for Windows. There are native bindings for GTK, but Linux is not a big desktop platform, and more so in business, and still GTK is much, much more complex than VB6 + Winforms + COM.
So basically, it seems we have traded easy of use and practicality for power/performance and cross-platform compatibility? What do you guys think?
I often muse over there not being a VB-alike approach for Python.
It would surely be reasonably straightforward to automate the creation of the GUI boilerplate code from a form designer, and then within an accompanying IDE hide most of that code from the user, only making the specific parts visible that correlate with different UI interactions?
> creation of the GUI boilerplate code from a form designer
why? i think the approach of of the form designer generating code instead of generating serialized objects that your code interacts with at runtime is a serious flaw. java got it wrong, cocoa got it right there.
I guess because that seems the path of least resistance within the existing Python world.
PyQt/PySide with QT Creator is the closest equivalent.
TCL/Tk and AndroWish. For an example working under PC and Android:
https://codeberg.org/luxferre/BFG
There's a ton of visual programming tools out there, they just don't call it visual programming but low code.
VB6 made writing Windows GUI applications very easy (on screen form designer), particularly when interfacing with COM libraries written in languages such as C++. No-one would use it if performance was an issue. Better was Borland's Delphi, with much the same features, but that ship sailed long ago.
VB6 is a terrible, quirky programming language, and it’s a pain to debug, especially if you’re used to modern development tools.
Microsoft killed it to push .NET (although originally, VB.NET was promoted as the main GUI language). People went to .NET, but also chose the "adult" language of C# along the way. Also, WinForms isn’t deprecated (it was in maintenance mode for some time, but now it gets some new features).
Language history aside, browser-based UIs are easier to develop and deliver, so they won over desktop applications.
> browser-based UIs are easier to develop and deliver
Compared to the ease of a VB6 winforms app, they are way harder to develop. It's just the delivery that's a little easier - as well as the portability to non-Windows platforms like phones.
Writing a simple VB6 app is easier than a simple React app, sure. But things get complicated when something needs to happen in the background — you need threading, and all the issues that come with threads in most GUI frameworks.
One of the "quirks" that really caught me out once was the fact that VB6 doesn't do short-circuit evaluation of logical operators....
VB.NET was apparently suppose to get short-circuited evaluation, but many of the old VB6 developers hated that or misused it in a bunch of places and their code would break when they attempted to move over to VB.NET. So instead Or and And went back to not being short circuited, and we instead got OrElse and AndAlso, both of which are short circuited.