Despite the name, BASIC isn’t exactly a language recommended for beginners these days. Technology has moved on, and now most people would steer you towards Python if you wanted to get your feet wet with software development. But for those who got their first taste of programming by copying lines of BASIC out of a computer magazine, the language still holds a certain nostalgic appeal.
If that sounds like you, then may we heartily recommend QB64. The open source project seeks to modernize the classic programming language while retaining compatibility for QBasic 4.5, the late-80s BASIC environment Microsoft included with MS-DOS. That modernization not only includes the addition of contemporary technology like OpenGL, but cross-platform support that lets you run the same code on Windows, Linux, and Mac OS.
The QB64 team released version 2.0 just a few days ago, making this the perfect time to give the project a test drive if you haven’t tried it out yet. The changelog includes platform specific improvements for each supported operating system, as well as a long list of general fixes and updates. But arguably the biggest feature for this release is the inclusion of the $Debug metacommand.
When this command is included in your code, the IDE will insert a debugging stub into the compiled program. During execution, the QB64 IDE will switch over to debugging mode, and communicate with your program in real-time over a local TCP/IP connection. The debugging mode lets you step through the code line-by-line, check the values of variables, and set breakpoints. Once you’re done fussing with the code and want to release a final binary, you just need to remove that single $Debug command and recompile.
When I got my first computer, a second hand 386 running MS-DOS 6.22, I didn’t have an Internet connection. But I did have QuickBASIC installed and a stack of programming magazines the local library was throwing out, so I had plenty to keep myself busy. At the time, I thought QuickBASIC was more or less indistinguishable from magic. I could write simple code and compile it into an .exe, put it on a floppy, and give it to somebody else to run on their own machine. It seemed too good to be true, how could this technology possibly be improved upon?
Of course, that was many years ago, and things are very different now. The programming languages du jour are worlds more capable than the plodding BASIC variants of the 80’s and 90’s. But still, when I found a floppy full of programs I wrote decades ago, I couldn’t help but wonder about getting them running again. With something like DOSBox I reasoned I should be able to install the QuickBASIC IDE and run them like I was back on my trusty 386.
Unfortunately, that was not to be. Maybe I’m just not well versed enough in DOSBox, but I couldn’t get the IDE to actually run any of the source code I pulled off the floppy. This was disappointing, but then it occured to me that modern BASIC interpreters are probably being developed in some corner of the Internet, and perhaps I could find a way to run my nearly 30 year old code without having to rely on 30 year old software to do it. Continue reading “QuickBASIC Lives On With QB64”→
Apex Minecraft hosting recently held a scholarship competition. The person who sent in the best essay would win a $2,000 scholarship. The winning essay starts, “Five years ago, at age 13, I built an entire computer from scratch. Assembled from basic components: wires, torches, repeaters, pistons, and blocks, it was capable of rendering images to a display, multiplying and dividing numbers, and even calculating square roots.” I had to read it twice before it clicked that he was talking about a computer built entirely in a fictional universe.
It’s no wonder that he’s now a freshman at college, pursuing a degree in computer engineering. After reading this, I started to reminisce. The first computer I ever had access to was my mother’s laptop. It had an install of QBASIC on it, and I remember using it to make a few text based games. Later on when we got our first family computer I remember spending hours getting no better at video game programming using QBASIC.
It went on and on. I remember doing AI for video games in DarkBasic. I remember doing physics and collisions. Eventually I found my way to html, then php, to make websites about games (which are too terrible to share with you). So when the time came to program robots I was absolutely fearless. It just seemed like such a natural extension of what I already knew that it never occurred to me to be thankful for the time I spent trying to make my own simple little games until much later.
In the end I am still occasionally making little forays into game programming when I want to learn a new language or get back up to speed. It never occurred to me that perhaps this was just the way I’ve always learned a language.
Later on in the winner’s essay he goes on to describe his minecraft community. They taught new players. They taught themselves. They hung out and became friends. The writer gained a sense of self as a user of computers, a teacher of skills, a good member of a community, and a solver of problems. Unlike some of his classmates he won’t go to college and have to learn if he’s good enough. He’ll already know. All it took was a silly block based game.
Did any of you have seemingly frivolous endeavors show up as a foundation for your life and learning far into the future? Tell in the comments below how this ended up shaping your career.
In a hacker version of Jumanji, when [fiberbundle]’s parents divorced, his thrice-fugitive new stepfather took him to a remote location in Australia without any access to technology or the outside world. With him he brought an old 486, a gift from his real dad. Lest the police discover them, [fiberbundle] was forbidden contact from most of society and even restricted in the books he was allowed to read.
The boy spent years trying to get the most he could out of his two-generations-old PC. Using only two textbooks from a decade and a half earlier, DOS 6.0, and QBasic he managed to write his own shell dubbed OSCI (pronounced “Aussie”), a ray-caster 3d engine and lots more. No mentors, no Internet. The computers at school were even more outdated Power Macs.
Eventually life returned him to civilization to be mindblown by modern technology 1000x as powerful. He went from playing text-based adventures he had to write for himself, to seeing Crysis. From QBasic to C++. From ASCII art “shooters” to Half-Life 2. From a 486 to a 4-core CPU. From a rural library to Wikipedia.
Follow the link above to see screens of his projects over the years. As of yet no one has verified the story, but, even if only that it is worth a read.