PC-BASIC, a cross-platform interpreter for GW-BASIC
robhagemans.github.io
robhagemans.github.io
People recommended Scratch etc. but I felt talking about programs was important also, which is easier when you write textual statements. At some point, I briefly considered using an emulated BASIC due to the simplicity and built in graphic, but I ended up using Python together with the pyturtle library for LOGO-like graphics, because the main exercise was to let kids draw a house on paper and then ask them to generate the drawing commands (also first on paper). Using Python has the advantage that nothing they learned was "wasted" or "academic use only" - you can immediately build on or monetize Python knowledge.
Interpreted BASIC certainly is a development forward from compiled FORTRAN from a didactic point of view.
The ubiquity of microcomputer BASIC in the 80s -- often as the first thing users see, or the only thing they see absent a cartridge or disk or something loaded into the machine to run something else -- seemed to suggest that computers are meant to be programmed, the way pens are meant to be written with. It was a complete accident, of course, a side effect of market realities at the time: no one at the computer companies could think of what someone would want a microcomputer for, aside from video games. The devices were solutions still in search of problems. So the microcomputer manufacturers encouraged customers to invent their own uses and bundled a programming language that would let them do that. Once word processing, spreadsheets, and especially the internet took root, it became obvious what consumers would want a computer for, so the idea that they would be expected to program them fell by the wayside and programming tools became no longer easily accessible or even available except as a separate purchase. As a consequence we may not see the efflorescence of programmers among Xers to early millennials repeat itself the same way again. I don't even think it happened in the USA to the same degree that it did in the UK, thanks to Sir Clive Sinclair's ability to deliver cheap but serviceable and completely hackable units to even modest British homes; as a result, British computing, like British pop in the 80s, hit way different and became a source of endless fascination and influence.
I don't think it was an accident. BASIC was designed to be a simple language that was efficient with limited hardware resources, easy for beginners to learn and use, and powerful enough to do useful things. It turned out to be a perfect fit for microcomputers for those reasons. Especially in an era before platform standardization and giant software ecosystems, end-user programming was assumed and intended. (Even more so with "educational" microcomputers like the BBC Micro.)
> no one at the computer companies could think of what someone would want a microcomputer for, aside from video games
On mobile (and probably PC as well), games still dominate app sales by a large margin.
But in the early 1980s, microcomputer "business" (now "office" and "enterprise") software was already well established, including word processors (wordstar), spreadsheets (visicalc), databases (dbase) and software for mailing lists, billing, payroll, etc.
It uses a approach similar to Lisp REPLs of the time.
For "learn the basics (so to speak) in an afternoon" yes. (And I'm still sad about Python removing its BASIC-style print statement.)
But for sheer ubiquity in any computing device with a web browser, JavaScript is the BASIC of today.
On the ones that do, you can use tkinter.
I often hear this from UK people, but as someone from the US who is now in his 50s, I can assure you that the US also had a vibrant 8-bit scene in the the 1980s, just with different machines. Ours focused on the Apple ][ (and its many clones many of questionable legality like the Franklin Ace) and the Commodore 64, with smaller communities focused on the Atari 400/800 and the several incompatible TRS-80 computers put out by Radio Shack. There was even an attempt to bring in Sinclair's machines (the ZX-81 and ZX-Spectrum) through Timex, but they did comparatively poorly as the US market was pretty full.
The Timex Sinclair line did trigger something of a mid-80s pricing war, yielding cheap but low-spec machines like the TRS-80 MC-10, the cancelled TI-99/2, the Mattel Aquarius, and the Commodore 16. But only the Commodore gained any traction as far as I'm aware, and only it could rival the Spectrum in terms of capability (but not in ubiquity).
So many of us during those early 8 bit days, could get those cheaper clones instead of the real Sinclair ones.
And thus my first computer became a Timex 2068.
I wonder, does that possibly include QBasic binary format? I have a couple hundred games I wrote as a kid in this format that I have yet to automate a fix for.
I also have an outstanding Stack Overflow question about the process.
https://stackoverflow.com/questions/53051061/convert-from-qb...
Someone on the retrocomputing stackoverflow also asked a similar question, although the suggestion seemed to be to load it in qbasic and resave it back to ascii.
OMG the crazy headaches that setup gave me...of course if you didn't actually press PLAY on the unit at the right moment after you typed LOAD in BASIC, the thing would hang...and to be honest...it loaded so slow that it often seemed like it hung when it didnt, thereby AT LEAST quadrupling the fun (not).
One thing good did come of it...I never once cursed at 5 1/4 floppies as they were a godsend compared to the cassette drive days
...and while your at it, get THE HELL OFF MY LAWN!
https://github.com/nerun/bwbasic
(It's also in the repos of many major Linux distributions as bwbasic.)
A blog post where the developer comments on it a bit:
Some other people have taken over the maintenance at various points, but I don’t know what its current state is. It has definitely seen development since Ted stepped away. Its emphasis has always been on portability and simplicity over features, which puts a limit on the scope of further development
See:
https://en.m.wikipedia.org/wiki/Category:BASIC_programming_l...
and
https://en.m.wikipedia.org/wiki/Category:BASIC_interpreters
Some will be obsolete, of course.
Can it run nibbles ?