🪨 Visual Basic on the PC w/Windows 3.1 🛠️

Apple wasn't the only company to have a popular, easy to use, visual programming tool, only to yank it from their diehard fans and replace it with nothing. I see what all of the fuss was about with Visual Basic with the help of a "teach yourself" book, get pedantic about Microsoft's use of Helvetica, and *briefly* muse about slop factories. Arnold, from Diff'rent Strokes, guest stars!

#retrocomputing #microsoft #windows #basic

https://stonetools.ghost.io/visualbasic-win31

Visual Basic on the PC w/Windows 3.1

Apple wasn't alone in creating a beloved visual programming environment only to yank it away at the height of its popularity.

Stone Tools

@stonetoolsblog
VB .Net wasn't a replacement for VB6. Loads of stuff missing and still is.
The C# .net was far better.
It was impossible to translate most VB5 to VB.net.

I only used VB6 (VB5 for a short while) for the GUI and it either used SQL Server for data and / or DLLs written in C++ or Modula-2.
Switching to Java ( multiplatform unlike C# then, which was based on J++, the MS version of Java, made more sense. Then QT with C++.
Then 64 bit windows caused many (all) OCX to fail, RS232 etc.

@stonetoolsblog
32 bit VB5 & Option Explict was the minimum.
VB1-4 was not useful.
The Wikipedia article conflates VBA and VB and doesn't mention 16 vs 32 bit.
VBA was terrible. VB in MS Office applications.
VB 6 programs that don't work on 64 bit Windows do usually run on WINE 32 on 64 bit Linux.
I have the last VB6 Enterprise updates on XP VM.
MS lost the plot about 2004+ with .net, depreciating Forms/WinAPI and Aero on Vista. Downhill since.
So in Jan 2007 I deleted Win7. Linux only.
@stonetoolsblog
On Windowing etc.
Almost all Apples patents are bunk. The USPTO is broken.
They don't really research prior art or obviousness. They make more from awarding patents & theory is the companies can sort it in court! See Edison, especially Movies.
Overlapping windows and trashcans! Obvious and not original.
Also Apple vs Samsung, Apple should have not won.
I saw portrait Xerox based Windowing before Apple even sold an Apple II in UK!

@stonetoolsblog Great writeup, as usual. I had almost forgotten about VisualBasic for DOS.

In the early 1980s the Interlisp environment had something like the grandfather of tooltips:

https://fosstodon.org/@interlisp/116707865758668791

And, of course, Lisp and Smalltalk programmers have had "edit and continue" since forever, even with compiled code. 😀

@amoroso Really neat to learn about those tooltips on Interlisp, thanks for the info. Xcode tried to give "fix and continue" to the Objective-C crowd a long, long time ago and I think it deprecated when they switched from GDB to LLDB. Yesterday I was doing SwiftUI for my work and it has "Live View" previewing, kind of adjacent to a "fix and continue," and it just didn't work at all.
@stonetoolsblog By the way, I didn't know DOSBox-X comes with its own Windows implementation.
@amoroso No, just it's own DOS implementation. I installed standard Windows on top of that, rather than doing an install on top of real DOS. Maybe I worded that confusingly in the post?
@stonetoolsblog I see, thanks. My understanding from the article is DOSBox-X comes with a built-in Windows implementation or emulator.

@stonetoolsblog What a blast from the past, VB3 was how a very young Screwtape got started with Windows programming. I still have "Visual Basic Programmer's Guide to the Windows API" on my shelf.

Some minor things you might have missed due to your setup:

- You mention "absurdly large title bars"; Windows 3.1 considers 1024x768 to be "high resolution" and uses something like a high-DPI mode that draws most things bigger than usual. If you use 640x480 or even 800x600, that shouldn't happen (the title bars will still be big and empty but not *that* big)

- You had some trouble with the Beep command not beeping multiple times. In the era, "beep" would have played a basic square-wave beep from the PC speaker, which may have been timing-critical enough that nothing else would be allowed to run until the beep was complete. If your setup emulated one of those fancy modern "sound cards" with "digital audio playback", that might replace the synchronous Beep API with one that plays a digital sample asynchronously.

Other than that, thanks for another thoughtful writeup! I hadn't really made the connection before, but that early exposure to VB3 might have given me a taste for making tools that fit gracefully with platform conventions rather than being bold and stylish. On the other hand, maybe I was already like that, and that's what drew me to VB3.

@Screwtapello Good to know about both those issues. I was indeed running at 1024x768. Also, I think DOSBox-X does default to a SoundBlaster setup (or possibly I set that while following some online setup guide). I'll mess around with those settings tomorrow and see how it goes.

Thanks for reading, and I'm glad you enjoyed it! There's a place in this world for tools of all shapes and sizes. Matching platform conventions is super useful and helps a lot of people.

@stonetoolsblog great writeup as usual. As someone who still maintains (and assists other clients to maintain) critical line-of-business VB6 apps in the present day, it's hard to hear the criticisms against something from the past that we still use and don't have a true replacement for today, but you're not wrong about the "taste" aspect of VB. what made it work was their commitment to developers and a 3rd-party ecosystem. too bad they threw it away!
@stonetoolsblog BTW - there are a couple efforts to rebuild a new compatible VB6 but they're not done yet. it's harder than it looks! http://twinbasic.com and http://radbasic.dev
twinBASIC - Modern Classic BASIC

@greatquux Yes, I absolutely agree that Microsoft was really on the ball with developer relations in those days. Wow, you *still* work with VB6 apps? What kind of system do you do your VB6 work on?
@stonetoolsblog i prefer to work on an XP VM for it, but my two clients (one makes a case management system for law firms, the other makes a kind of big all-in one business management software for pulp-and-paper traders) both use it on Win10 (or Server 2022) even today (there are lots of blogs out there that help you get the IDE installed and it still mostly works, though best to compile on 32-bit Win10 if you need 100% compatibility).
@stonetoolsblog the move to .NET was going to be too painful, and just not worth it. they've both tried ground-up web rewrites, but they still don't have as much functionality as the fat client, and a lot of customers still prefer it, so they have to keep supporting it. one's even running up against some limits and the EXE alone is 63MB! i'm holding out hope for those projects (and support them with money too!)