Then I transitioned to Windows, and had to contend with all the complexity.. What's a Window Class and how do you write an event loop to respond to window messages, why is this all so complex.. Why is MFC somehow not really better.
Having written a simple DOS GUI (that kinda looked like Windows), I had to discover that a Windows app of equivalent functionality took more and messier code.
And forget drawing to the screen, you had to grapple with GDI drawing contexts, it was slow and bad.. (Not like Linux was any better than this regard).
As for DOS, I have had the privilege of hacking together a bitbanging VGA adapter, so I know for a fact that drawing to the screen is really as simple as setting values in an array, then, scanning it out to the display.
Screen mode 13h was definitely fantastic. Being able to light up a pixel by mapping directly to the 64k contiguous bytes in the address space was very intuitive.
And yeah dealing with Win32 stuff definitely came with its own set of complexities, I practically had the Charles Petzold Programming Windows book memorized back in the day.
But let’s also not forget Visual Basic, which outside of maybe Delphi, I'd consider one of the greatest RAD environments ever created. Being able to just grab a button onto a form and then double-click it which would instantly create a handler that you could add your logic to was very approachable even for younger audiences.
The only problem of course is that Visual Basic wasn’t bundled with Windows, so it was a lot less accessible than QBasic which came bundled for free with MS DOS 5.0.
Today, computers don't even have parallal/serial ports. Everyone has to pay the USB gods their tribute to have the mercy of allowing to program arbitrary IO from their computers....And they still need some kind of serial receptacle on the other end...
OPEN "COM1:2400,N,8,1,BIN" FOR OUTPUT AS #1
Followed by my parents yelling at me to get off the phone since we only had the one landline. :)