As more of a Sys Admin / scripting type, I felt happy and sad at the same time at the actual mention of Visual Basic.
VB is often scoffed at, and probably to an extend rightfully so.
But those (i.e. VB1 through to VB6) were the ONLY languages that I ever managed to create useful, finished tools and programs in. Maybe it's part psychological, but I needed the approach where I created a neat UI first, got my methods pre-populated for me, and had something tangible to look at early in the process. Then went on to fill it with all with custom code. Yes, it's BASIC, but it was extensible. People I knew wrote OCX and such control elements, and code routines in DLLs in C/C++ and integrated that into VB projects, so the sky was still the limit.
Staring at an empty text document with possibly some header file statements never evoked the same creativity with me that VB did.
p.s. my proudest creation was a Windows 3.1 UI around the MS-DOS packing program "arj", for those who remember. Had I been a better businessman, that might have predated WinZip :)
2. 1.5 persons still only mildly technical and mostly business-domain-y, a VB gui and some basic network integration
3. [some time and quite a bit of revenue passes]
4. they hire some java programmers to rewrite it properly in Swing, since the VB versions had literally become impossible to modify without breaking (there were forked versions where you used version A for some feature, version B for another, version C for another - and people had tried to merge them together while keeping the whole thing working, but never managed it).
It's now been, oh, over a decade I suppose, and while I understand that there are currently some efforts underway to port the java applications to an SPA web app, it's more because the owner wants to get rid of java (and only have to hire python devs) than because the apps don't work or are hard to maintain.
My point is that without VB, the company probably wouldn't have existed to even need the Swing rewrite. So while I personally find VB to be quite caustic to my senses, I cannot deny its ability to create business value, especially because it's so approachable only mildly-technical folks.
The company I used to work at started out in MS BASIC sometime in the early 80's. The founder is a mechanical engineer who started programming all the formulas he was using instead of cranking them by hand every time. In the 90's, he ported it to VB and turned it into a GUI application for Windows 3.1. In the early 00's, the company had to switch over to using C++ for a fair amount of the UI, but the core off the application is still that library of VB code (now VB.NET) that was started in the 80's, and the RAD tools for VB was what allowed them to stand out as a mechanical design program earlier than most of the other tools.
Both of those are still pretty nice to work with and I'd say can still be used for a variety of different pieces of software! They also have a Software Gallery page that shows a few different programs developed with them: https://wiki.freepascal.org/Projects_using_Free_Pascal
Though the language is also showing its age and perhaps isn't for everyone, like how C++ might also be an acquired taste. Some things like talking to RabbitMQ, Redis, gRPC, GraphQL or MongoDB (just as examples) might be a bit more difficult than in other languages that get more love.
I probably wrote my best "software" in VB too, i.e., stuff that hung together well enough for others to use over a long time period. One of my programs is still used daily in the factory, with virtually zero failures in 14 years.
What happened was that I lost interest in creating that kind of thing. And the business decided that such programs have to go through a formal approval and release process, so it left me with no advantage over letting the software department maintain that stuff at considerably greater expense. Today, I'm willing to burden my users with stuff that requires a bit more care and feeding on their part, such as plain Python scripts. Also, VB turned into VB-dot-net.
I'm equally creative in C, but on the embedded side. Something about working within severe limitations. I'm reminded of a quote from Richard Feynman: “The game I play is a very interesting one, it’s imagination in a tight straitjacket.”
Gambas and Lazarus covers a lot of ground, but I also miss a system where you can easily go from an UI designer directly to a small self-contained executable, and then start to add in code.
Visual Go, Visual Rust, Visual Nim and Visual Crystal, where are you?
Those do sound cool. Visual Go would be really nice too! I’ve spent some time using CLOG recently, and I’m aware that is can produce a self-contained executable, but haven’t gotten that far in the tutorials yet. Anyways just wanted to share.
I don’t understand the the purely psychological disdain for Basic.
I developed in an odd Language…LabVIEW…and I get what you’re talking about with first class GUI support and being able to see something each step along the way.
I could regale you with tales of the silliest conversation I’ve had with programmers who claimed that a graphical programming language couldn’t possibly do “real things” without even trying it.
Your point is spot on.
Wait until someone shows “real” programmers PLC ladder logic and they become aware of just how much critical infrastructure runs in a programming language that was literally designed to allow electricians and mechanical engineers automate real-time safety critical automation controls.
Same. Well, GUI based projects that is. When I learned C++ the effort to recreate some of my VB work just seemed so mindnumbingly long and boring. Which was probably to my detriment...if it were the only way, what fun. But when you know the easier way, you question why.
Myself and a lot of kids probably grew up on VB. I was one of those annoying kids writing AOL 3.0 'progs.' I don't think I've ever had as much fun coding as those days, but that's probably due to age and community moreso than VB's greatness.
I was a little late full-on BASIC, but enjoyed writing little TI-BASIC programs on my calculator.
I don't know why people would scoff at BASIC, tons of people make their careers writing Python, which is 100% going to be regarded as the BASIC of 201X-202X.
VB was the peak of computing, modern dev wishes it was as capable.
One of the truely great things about the drag and drop form builder was being able to sit with a user and go through requirements with them, to wire it all up later.
"Ok, so when you type in the customers details, we should have a button to save them into the database. Will we put it here?"
I got into programming with VB when I was a kid and made a hundred little projects in VB6. It was so much fun browsing Planet Source Code looking for cool stuff.
My first uni year roommate had a similar background: numerous cute projects in vb, along with some real deep math. I was different as my dad was a geek I never had anything but linux at home.
I fondly remember trying to explain why Emacs doesn't have a green run/build button :-)
So many good memories of browsing that auto-scrolling list of new projects, downloading and trying something different and learning by seeing new code.
This part of the experience didn't fundamentally change between VB6 and .NET with WinForms - when you create a WinForms app project in VS, you still get a blank form to place controls, double-click on them to create the appropriate event handlers etc.
Yes, VB as a language was terrible, in the same way that almost every BASIC is "terrible". There were some old ideas in the BASIC heritage that didn't age well. IIRC, it wasn't until VB6 that you no longer had to prefix string variables with $. But by that point there was an ecosystem issue of old documentation, legacy code, etc.
WinForms absolutely captured most of the same feel of VB6 from strictly the perspective of the tooling. I think it took a while to really catch on because, being a from-scratch rewrite, it took a while to gain complete feature parity, while also lacking the subcomponent market that a lot of VB6 projects had grown to rely on.
But then, GUI requirements also evolved. HighDPI displays, internationalization, accessibility, bigger and bigger projects needing better organizational methods. You can solve most of these issues in WinForms by being super fastidious about componentization, but it's not the happy path of just double-click-on-the-form-designer.
All of the XAML-based GUI systems that Microsoft developed since then have tried to invert that issue. They wanted to start people off by being considerate of componentization. Unfortunately, it came at the sacrifice of the usability of the tools.
Just FYI, you didn't have use the $ to denote string variables from VB2 upwards. It had been a QBasic thing, pretty sure it ended up in VB1, and then was dropped. (though you could still optionally use it) Option Explicit... first line that should have been in every VB program.
I had an entire career built on developing back end tooling in VB for businesses, some of which (.. 25 years later?) are still doing their jobs. It was sometimes painful but it really did set a bar for quick productivity. Fond memories of those days!
I made good coin coding in vb6. Usually I was automating reports (that clients paid for). People would do a job then sit down and create 30 spreadsheets to send out to clients. I created software to pump all these out in seconds. Excel sheets with graphs, intricate layouts and formulas. 15 years later I think they finally have a working web version.
I got consulting asks for a decade.
The weirdest thing (I have ever seen in software): Once VB.net hit, all VB devs quit. VB.net was a totally different language. I guess we all moved on.
And Lotus Notes was the Excel of workflow, making use of its own @formulas, vbscript, and eventually incorporating Java and JavaScript into the platform.
When I was a student, our teacher told us to just drag and drop GUI elements in Visual Studio and write the functionalities in C#. At that time I didn't knew that existed other ways to create user interfaces.
I'm sure there's plenty of legacy apps out there that are getting maintained - but I seriously don't see anyone picking windows desktop as the only target for a new project these days.
Even automation stuff is moving to web interfaces and headless network connected controllers. Unless you're doing legacy stuff or niche stuff you're probably not writing stuff for windows desktop.
Game tooling has also moved to cross platform these days with popularity of MacOS for content creators and iOS as a target market requires MacOS for development tools.
Have you tried CLOG?! It apparently matches the exact use case you described above. It’s a GUI first approach but its aim is to be highly extensible. I only ask that you be gentle. It’s being built by a passionate developer in his spare time, but he’s making great progress.
I've seen quite a lot of people use C# + winforms to do similar things, most "professional" devs kind of turn their noses up at winforms, but, you can bang out functional little apps without too much effort. I haven't tried with the latest .net 6 stuff, but I think you can pretty much compile the whole thing into a single executable now.
VB is often scoffed at, and probably to an extend rightfully so.
But those (i.e. VB1 through to VB6) were the ONLY languages that I ever managed to create useful, finished tools and programs in. Maybe it's part psychological, but I needed the approach where I created a neat UI first, got my methods pre-populated for me, and had something tangible to look at early in the process. Then went on to fill it with all with custom code. Yes, it's BASIC, but it was extensible. People I knew wrote OCX and such control elements, and code routines in DLLs in C/C++ and integrated that into VB projects, so the sky was still the limit.
Staring at an empty text document with possibly some header file statements never evoked the same creativity with me that VB did.
p.s. my proudest creation was a Windows 3.1 UI around the MS-DOS packing program "arj", for those who remember. Had I been a better businessman, that might have predated WinZip :)