FreeBasic
freebasic.net
freebasic.net
I'm just a hobbyist, and approaching 40, so maybe this is pure nostalgia. But I do think text adventures (especially writing one yourself) are still a great way to teach coding -- and the whole keyboard-centric paradigm of computing. As a side note, being a non-native speaker, I learned quite a bit of English with the legendary adventure games by Sierra and Al Lowe. Great teacher, extra credits for his quirky and naughty, but yet so intelligent humor, of course. :)
Currently we're going through a QBASIC tutorial by Ted Felix: http://tedfelix.com/qbasic/
I think it is really well thought out and structured; looks like a great "more traditional" introduction to programmer's way of reasoning for kids around 10-12. I also like the empathetic language the author is using -- he has clearly put some thought into how to explain things so that a 10-or-so year-old kid would understand it while reading on their own.
I am actually in the process of translating this tutorial to my language (Estonian). Most of it is already done, and I can confirm that our son is doing really well reading it and trying out the examples entirely on his own. The QBASIC IDE is IMO still really good due to the instant feedback the child gets while messing around with it.
The same author Ted Felix also has a follow-up about creating sprites in QBASIC: http://tedfelix.com/qbasic/sprites.html
Another great BASIC-based environment for children appears to be LowResNX: https://lowresnx.inutilis.com/
Haven't tested it out myself, but after we're done with the QBASIC book, we might move over to this one, actually. The manual looks great, might be quite accessible for a 10-12yo kid's self-study: https://lowresnx.inutilis.com/docs/manual.html
It is definitely strange to reach for BASIC as a teaching language in 2023. But, this is an argument that has been echoed on HN as well, today's popular languages do seem somewhat overkill for a child's first independent explorations. But, again, I am just a hobbyist, no intention to grow a programmer out of our son. I would actually just like to teach im thinking skills, and a way to have some intellecual fun.
Those Sierra adventures probably did have a considerable, even huge impact on my early encounters with the English language, though. Basically, it was "learning by typing" [1], so it must have greatly contributed to the grasp of grammar and spelling early on.
This is actually a reason why I still consider text adventures a great learning tool for children. The child is playing a game (or coding their own), but because it is so text-heavy, they also improve their language and writing skills, without even noticing it. Leisure Suit Larry style jokes are not a compulsory part of this syllabus, though. :)
1: "Ken sent me"! :) https://invidious.protokolla.fi/watch?v=JWlTR29stts
It would work if you were a newbie and grow with you as you got more advanced. The language manuals were well written and in places quite funny.
Compile time was ultra fast, and if you wanted to go deeper you could. (assembly).
I dont know of any popular IDE right now that is as complete and easy to use.
I remember not really understanding at the time and then years later coming across Visual Basic and the name ringing a bell, and then I was off to the races! So much fun.
But with BASIC getting so much hatred since the 70s... I started with the famous Dijkstra quote and did an investigation - was it really that bad? https://retrofun.pl/2023/12/18/was-basic-that-horrible-or-be... It was amazing to see the language origins and how it compares to the alternatives.
Today BASIC dialects are really advanced. Even BBC BASIC has structs now!
I also did an experiment not to praise BASIC without criticism and tried Advent of Code in BBC BASIC... it makes you focus on the "how" a lot, almost like assembly, while modern higher level languages let you focus on the "what" instead. On the other hand that still makes it good for learning how things really work. Not having a string.split for example makes you iterate over the string instead, and you'll be aware how split works whether you wanted it or not.
Originally BASIC used a JIT compiler, it was due to the hardware limitations of 8 bit systems that it was know as interpreted language for most folks.
16 bit and 32 bit BASIC supported structured programming, AOT compilation and everything one would expect for systems programming.
After reading the wikipeda page I found out Mr Sibly made them open source in 2014. I wonder if there is much community around them now?
I'm still friends with many of the prolific creators on Facebook in that space.
It was FOSS'd in the later years, which is great, but it doesn't really solve many of the problems or make it easier to work with BlitzBasic code for most people. Some of us spent some time on some translation layer-like technologies with the main goal usually being someone can run a `.bb` file in the browser having it auto-transpiled into a bastardized version of Ecmascript running WebGL.
It is a very capable language, as you would expect from it's beginnings (as Monkey X) under Mark Sibly.
It was harder to structure the code because there were no functions and subroutines, just line numbers and goto.
No while, no fors. Just ifs.
When I've learned x86 assembly later, it didn't seem too different to me.
This variant of Basic is more close to Pascal for me than the Basic I've learned.
Allowing only a single letter for string variable names was a pain though ;)
GO SUB line number isn't the same as using GOTO?
Your memory is a little hazy because the ZX Spectrum had both subroutines and for loops (I believe all Sinclair machines did).
Indeed. But it was a long time ago. I didn't mean to snark. It's forgiveable.
Timex Basic featured on the "clones" they produced is said to be a a superset of Sinclair basic, in which case then Timex Basic has the same features.
I am not 100% when it comes to the ZX81. I did most of my programming on the ZX Spectrum.
I wrote a database engine and front end on it. (There really was no backend and frontend it was all just one program. But the engine was versatile and easy to build a new front end on top of. I tried selling it for a while without luck. (Which was probably a good thing).
Looking back on it now its embarrassing. I had no real idea what a database was, or how to functioned inside. But given my age and tools available it was ok-
However for games, I needed to use the 48k emulation eprom cartridge, and with 128K ZX was on the edge again.
I found Basic! and techBASIC on the ipad, and they might run on Apple Silicon.
The latter is not in the appstore these days.(It seems to have morphed into something else)
(quick download) Basic! runs on Ventura/MacMiniM2. How well is TBD.
I'll set up a linux system for fun as soon as I get some things sorted out.
Not promoting any of these. My first BASIC was Palo Alto Tiny Basic, typed in or read in on paper tape (I had to set up the reader and program first) on the IMSAI.
For linux, I am pretty sure that GAMBAS will run. I have not researched others.
Happy Interpreting!
Come share your findings with us in the discord BASIC community if you use discord: https://discord.gg/rWaFeCca3P
You can type in IBM PC DOS BASIC programs for GWBASIC in them and run them.
You may want to check out https://www.b4x.com for something that on the surface looks similar.
Interesting language. I've never heard of Java as streamlined though ;)
https://robhagemans.github.io/pcbasic/
Since I’m kind of a data hoarder, I’ve put my GW-BASIC files from the early 90s on GitHub:
FreeBasic was probably the most fun of them to me: cross-platform, compiles to fairly fast running binaries, can easily interface with libraries written in C, and has qbasic syntax mode.
Almost a year ago, Paul Allen and myself, expecting the hobby market to expand, hired Monte Davidoff and developed Altair BASIC. Though the initial work took only two months, the three of us have spent most of the last year documenting, improving and adding features to BASIC. Now we have 4K, 8K, EXTENDED, ROM and DISK BASIC. The value of the computer time we have used exceeds $40,000.
The feedback we have gotten from the hundreds of people who say they are using BASIC has all been positive. Two surprising things are apparent, however, 1) Most of these "users" never bought BASIC (less thank 10% of all Altair owners have bought BASIC), and 2) The amount of royalties we have received from sales to hobbyists makes the time spent on Altair BASIC worth less than $2 an hour.
Why is this? As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?
Is this fair? One thing you don't do by stealing software is get back at MITS for some problem you may have had. MITS doesn't make money selling software. The royalty paid to us, the manual, the tape and the overhead make it a break-even operation. One thing you do do is prevent good software from being written. Who can afford to do professional work for nothing? What hobbyist can put 3-man years into programming, finding all bugs, documenting his product and distribute for free? The fact is, no one besides us has invested a lot of money in hobby software. We have written 6800 BASIC, and are writing 8080 APL and 6800 APL, but there is very little incentive to make this software available to hobbyists. Most directly, the thing you do is theft.
What about the guys who re-sell Altair BASIC, aren't they making money on hobby software? Yes, but those who have been reported to us may lose in the end. They are the ones who give hobbyists a bad name, and should be kicked out of any club meeting they show up at.
I would appreciate letters from any one who wants to pay up, or has a suggestion or comment. Just write to me at 1180 Alvarado SE, #114, Albuquerque, New Mexico, 87108. Nothing would please me more than being able to hire ten programmers and deluge the hobby market with good software.
Unless you care too much about the AOT compiler or the easiness to create and use COM libraries.