Hacker News new | ask | show | jobs
by lholden 1173 days ago
I started programming with BASIC back in the late 80s and into the early 90s. Started with gw-basic and then with QBasic, both of which were included in versions of DOS.

QBasic was really cool at the time. I wrote a lot of (very crappy and slow) games in it. The documentation was all readily available and it had a lot of power. QBasic (and VB) were very "batteries included" and that was amazing.

But, and this may sound harsh, I've always felt that BASIC was a language of desperation. You use it because it's the only thing available to you, not because you actually want to use it. There was a time where some form of basic was available on literally every computer. This continued well past the 80s with VBA and gave a lot of people the power of extensibility over their applications.

Back when I was writing a lot of BASIC code, I quickly found myself running into walls and realizing that it just wasn't a great environment to build anything serious in. The lack of a real compiler in DOS was the primary reason I found Linux and C in the mid 90s. Once I had my hands on a C compiler I never wanted to look back ever again.

(I know that QuickBasic and Visual Basic existed and could create binaries. But, I was young and couldn't exactly afford them. Before finding C, I was using a BASIC environment called ASIC, which wasn't quite as nice as QBasic, but could produce binaries.)

It makes me wonder how things might have been different for me if DOS came with a C compiler and something like raylib. The lack of a real (free) compiler drove me to Linux. Would I have still gotten into Linux? I don't really know!

3 comments

> I know that QuickBasic and Visual Basic existed and could create binaries.

Very small binaries. Unfortunately you had to include the rather large run-time libraries with them (BCOM*.LIB or vbrun*.dll respectively). IIRC vbrun300.dll was >300MByte which was rather large at the time, as well as the library functions it contained an interpreter and your executable wasn't fully native code (your code was transpiled to something the interpreter could process more efficiently, and the executable had a small chunk of native code to load the RTL and get it to execute the rest). IIRC VB6 was the first version to properly compile to native code.

394KB, which I'm sure you meant... but nothing compared to anything from today.
Sorry, yes my scale was off, I meant ~400KByte nor MByte. More than a quarter of a common formatted floppy (half even, given 720KByte-less-overhead disks were far from rare at that point).
For comparison, my professional vb3 work was done on a computer with a 200MB hard disk. The word2 exe was about 1MB.
There were 3rd party replacement libraries the QuickBasic standard libraries that were much smaller and faster.
You never got to the stage of pirating QuickBasic off of a BBS somewhere. I went from 8bit BASIC to QBasic to QuickBasic and then to VB. I even started writing some assembler and linking it with QB code.

QuickBasic and all the variants filled a niche that exists in multitudes now but did not exist in the early 90s. There weren't many high-level languages with garbage collection in common use.

I would have if any of the BBSs I was on had it :). I just downloaded a boatload of SLS Linux floppy images from a BBS instead! :D
At that time I was developing on a 286 -- Linux was still far in my future.

But all my friends had pirated copies of every development tool. I don't know how we even got it all. We were lucky to be adjacent to a larger city and therefore have closer access to files and information.

TurboBASIC was fully compatible with QBasic/QuickBasic and could generate executables .
Sounds to me like you're confusing two different products.

QuickBasic was a paid-for, commercial compiler. It builds executables.

QBasic is a different product: a freebie with MS-DOS 5 and later. It's an interpreter.