3 ms·
IMHO re-implement these using modern ES6 javascript targeting browsers above IE11 (so ES module support is good) and a simple canvas library (or even P5.js) to
by qbasic_forever 6y ago
IMHO re-implement these using modern ES6 javascript targeting browsers above IE11 (so ES module support is good) and a simple canvas library (or even P5.js) to really capture the original spirit of BASIC. It's supposed to be a modern language that's available everywhere, and web browsers fit that mold nicely. The dev tools window in your browser is the new QBASIC, just sitting there waiting for a kid to open it up and blow their mind with what's possible.
- dragonwriter 6y ago> IMHO re-implement these using modern ES6 javascript targeting browsers above IE11 (so ES module support is good) and a simple canvas library (or even P5.js) to really capture the original spirit of BASIC IIRC, nothing in either volume of the original (not sure if this changed in the later update that targeted SmallBasic) used graphics, they were all text-mode, so there's no real need to target a canvas library. Maybe something that provides a simpler abstraction than the DOM for just dropping text onto the page, though, if you don't want all the display in dev tools.
- qbasic_forever 6y agoOh nice, heck you could just say "Step 1: Open your browser's dev console. Step 2: Write this code..." Console.log() and prompt() for all your text I/O needs.
- koalahedron 6y agoInteresting idea! I had to think about what you were describing, but that actually is very similar in spirit to the experience back then. It's kind of like discovering the assembly monitor on the Apple ][, which you could get to by poking a value in Basic. I remember typing in an assembly program I found in a magazine that sampled audio from the cassette recorder, and played it back on the speaker. It was gritty sounding, but an amazing discovery for me at the time (about 1982). (I'm always doing Ctrl-Shift-C to copy text from the browser when I forget I'm not in the terminal anymore--which brings up the element inspector and the console. I've always wanted to explore it myself, but I'm usually deep into another project.) I wonder what I could have done if I had Three.js?
- koalahedron 6y agoIt's also interesting that QBasic (which I didn't use) is related to IBM Cassette Basic, the first language I used on the IBM PC. If the computer couldn't find a bootable floppy, it booted Basic from ROM: https://en.wikipedia.org/wiki/IBM_BASIC#IBM_Cassette_BASIC https://en.wikipedia.org/wiki/IBM_BASIC#IBM_Cassette_BASIC no OS needed, like the Apple ][, TRS-80, etc.