← Back to context

Comment by torginus

12 hours ago

I refuse the accusation - I had a very good idea what BASIC was even at 5 years old. QBASIC was the program that allowed you to open GORILLA.BAS and play the Gorilla fruit throwing game.

..at that time I have to admit, most of what I saw there went over my head. I understood the concept of program code, but had very little idea of what was going on, but wanted to learn. Eventually I started modifying the code, and started making my own stuff, driven mostly by determination rather than any understanding of what was going on.

Reading through all the comments, I think there’s also a bit of a generational gap here.

There’s a huge difference between a kid turning on a Commodore 64 or an Apple II and being dropped into the relatively no-frills versions the BASIC interpreter versus a kid in the early ’90s who had a DOS machine with MS-DOS 5 bundled with QBasic which IMHO is a more representative example of a “batteries included” BASIC environment that was significantly more user-friendly.

I also encountered QBASIC as an elementary school kid - it felt like the closest thing to sorcery. People who grew up in the age of the internet really underestimate how awesome it was to be able to just be able to place the cursor on a more obscure command (like PEEK/POKE or POINT) and see something like this:

  Returns the current graphics cursor coordinates or the color attribute of a specified pixel.

  'This example requires a color graphics adapter.
  SCREEN 1
  LINE (0, 0)-(100, 100), 2
  LOCATE 14, 1
  FOR y% = 1 TO 10
      FOR x% = 1 TO 10
          PRINT POINT(x%, y%);
      NEXT x%
      PRINT
  NEXT y%

  • I think the true generational divide was between DOS and Windows. After spending an inordinate amount of time in DOS (making the journey to Borland C), it felt awesome that you could draw onto the screen, no questions asked. I made so many games and graphical programs just drawing to the screen and then reading the input in a loop, it worked great.

    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.

    • > 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.

  • If I remember correctly QBasic even allowed configuring and controlling serial/parallel ports. Just imagine what a guy could do with that if he was bold enough to poke wires into a parallel port....

    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...

    • Absolutely~ I remember many summer days as a kid trying to figure out how to send commands to our serial-port driven 2400 baud modem using the AT command set:

        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. :)