QBasic is an old-school, vintage programming language that was designed for beginners. QBasic ran on MS-DOS, and was a more advanced version of BASIC. QB was a lot of people’s first foray into programming (particularly those of us who grew up in the ‘80s and ‘90s). Therefore, a lot of people look back at QBasic with nostalgia.
QBasic is one of the very few programming languages I actually ever even used – back when i was a very young kid – so I do have some faint nostalgia for it. Great to see such a dedicated community keeping it alive.
QBasic was my second programming environment, and i have quite some nostalgic feelings about it too. My first was C64 basic that i played with when i inherited one in the late 80s. The jump to QBasic was huge, just the fact that you didn’t need line numbers, had a much better editor and had things like functions so you didn’t actually need goto / gosub. Making cool things was suddenly muuuch eaiser, and the code was much easier to work with and structure.
It was quite easy to get started with and the built in documentation was pretty good, and was in fact the only resource i had when transitioning from the C64.
Was quite a fun year i spent with it until i after a couple of attempts and reading a few books finally took the leap to C to get better performance and be able to use more resources, which was needed as what i wanted was to make games, program managers, file managers, etc..
For me the QBasic period must have been in 92, which made me 12-13 years old… Wow, i get very little done in my spare time now compared to back then
Ah, the good old days where the lack of documentation and libraries meant that even small things like changing to VGA mode and putting a pixel on the screen, or enabling mouse support, were mountains to climb that involved piecing together information from multiple articles and a lot of trial and error and computer crashes
Troels,
I share your enthusiasm for programming back then, however I felt PC programming details were very well documented if you knew where to look. Between troves of readily available technical books when book stores were still healthy and superb resources like ralf brown’s interrupt list, I never lacked for documentation. In many ways I think low level programming was more practical in DOS since the OS never got in our way and was a natural launching board into system programming. Modern windows is a major road block for system-level programming enthusiasts, end users are locked out of their own machines
Oh, you were lucky, i would have given my left arm for proper books back then I had to rely on the extremely limited resources i could find at the public library and school library. There probably were book stores in the city center that could have supplied me with books on the subject, but i would not have been able to afford them, especially english language import books were very expensive back then.
The only book i had when learning C was the C programming language, which was nice and all about the general language structure, but gave me absolutely nothing when it came to DOS interaction Neither did the documentation with my borland compiler.
The first really helpful book i got was Tricks of the Game-Programming Gurus by Andre Lamothe, but this was a few years later.
I have somehow managed to never really have to learn to do Win16/Win32 development, which i am quite happy about.
I’d argue that modern hardware is the much bigger roadblock. Compare the complexity of getting, say, an RS-232 port up and running so you could start getting some basic debug information out of your hobby kernel compared to the equivalent in a modern USB-only system, where the complexity of getting even a bare-bones USB stack up and running is mind boggling by comparison. About the only saving grace is the availability of VMs that can still emulate the old hardware.
anevilyak,
I was thinking this too. Hardware in the post was much easier to interface to. And not only that but everything aimed to be a clone/compatible, These days a lot of hardware requires proprietary drivers which are unique to the hardware. For it’s part, linux has enough critical mass to manage the brute force effort (for the most part), but for indy OS developers I’m afraid the driver situation poses greater obstacles than ever. Some may go the route of targeting virtual environments like qemu, but I imagine we can agree that it’s just not the same as going down to bare metal.
QBasic was a middle step.
All begins with GW BASIC/BASICA on PCs and similar Basic-interpreters on other computer hardware by Microsoft.
For all you have line numbers. Your program runs in the same area, where you write your code. When you reached with the curson the bottom of the screen and you goes further down, it is again on the top, etc.
Then comes on PCs QBasic/QuickBasic 4.x.
Now you wrote your code in an editor. And the editor is buffered, if you run your code. Editor and running code are different buffered screens.
Line numbers no longer exits and instead of GOSUB there existung SUBs And FUNCTIONs. But it is mostly backward compatible. Most GW-Basic programs could be easily ported to QBasic or running already without modifications on QBasic.
After that comming Visual Baisic and Visual Basic for DOS.
From the same time is VBA, which is very similar to Visual Basic 6.
From that point exists methods. And you can easily create controls and windows.
With Visual Basic.NET there comes more syntax to it. And it is more near to actual high level languages.
But beacuse most code can be easily translated to C# and a lot of C# can be easily translated to Visual Basic.NET, the most difference of C# and .NET are not the libraries or so, it is only the syntax. And because most documentation in the internet is for C#, a lot of the Viual Basic.NET developers moved to C#.
But as always, there are people, who think, that one of the changes was a failure.
So there are still people who prefer GW-Basic. They think, the step to QBasic/QuickBasic 4.x was wrong.
There existing people who prefer QBasic. They think, that the step from GW-Basic to QBasic was ok, but from QBasic to VisualBasic was wrong.
Other seeing the step to QBasic to VisualBasic as ok, but the step from VisualBasic to VisualBasic.NET as wrong.
And so on.
The same is with operating systems btw.
People who love MS-DOS likes it, to have with its own program control over the complete computer.
Other think, that Windows 3.x was the best Operating System ever.
Other think, that Win95/Win98 was the best. A 32bit operating system with complete MS-DOS.
Then there existing the WinXP-fans. And don’t forget the Win7-fans, which never want to change to Win8.x or Win10.
theuserbl,
I know it’s only a small part of a larger narrative that you’re making, but I think you’ll be very hard pressed to find anybody who prefered GW-Basic to QBasic. GW Basic’s poor usability was perhaps forgivable given that it targeted environments that lacked proper text editing tools, however the language was inferior in just about every way. The spaghetti code combined with a lack of labels made it even less clear & readable than assembly language programs, which are high level by comparison!
I remember thinking of it as a very early application of EEE. In the 80s many systems had BASIC interpreters which were quite similar and code was portable between them. QBasic was an improvement, but also very distinct and tied to a single platform.
But if anyone does like QBasic a lot, I’d highly encourage them to try Visual Basic for DOS. The visual designer is fully optional (it compiles nibbles.bas just fine but it’s unplayably fast), so it really amounts to a newer version of QuickBasic with an optional visual library.
In Britain it was BBC BASIC by Acorn that lead the way.
An amazingly well written and structured language used by millions of school children and adults in the Eighties. It even had a builtin Assembler.
Bill Gates tried to sell his MSBASIC to Acorn. But his was very primitive in comparison.
Atari Basic for the Atari 8-bit computers was one of the best around. There was almost nothing you couldn’t do in it, and the way it handled strings and string arrays was years ahead of what available on most home computers..