I was here about a month ago announcing the 0.3 release of EndBASIC, a tiny language interpreter written fully in Rust that runs on the console as well as on the web. In fact, I had never thought about the web part of this project until Rust gave it to me pretty much for free, so this is super exicitng.
I'm now ready to announce the 0.4 release, which is a major milestone because it introduces some useful functions as well as demo programs that can get you quickly started.
The story I posted in a couple of other places follows:
For a few years, I have been thinking about how to teach coding to my young kids and I have routinely reminisced my own experience of 30+ years ago. For me, it all stared with the "simple" Amstrad CPC 6128 computer and its interactive BASIC language, and I think such a limited environment was pretty good in teaching me the fundamentals.
Based on that, I set up a Raspberry Pi with DOSBox and QuickBASIC 4.5 for them, and they were actually quite interested in what they could achieve. But it felt a bit clunky for this day and age, especially because this did not work on a tablet so they had to be tied to a desk they are not used to.
Back in March, when the COVID quarantine started in NYC, the thought crossed my mind: "how hard can it be to build my own BASIC interpreter?". As it turns out: not a lot but also not so little! Since then, I have been churning some code in my very limited spare time and have come up with a BASIC interpreter in Rust that is somewhat usable.
The interpreter runs on pretty much any system (tested on Linux, macOS, and Windows), and, thanks to Rust's WASM target, also runs on the web. This latter part is really the most exciting part as is what allows the interpreter to be drive-tested by anyone with ease and makes it run on the iPad the kids use.
Just yesterday, I published the 0.4 release so I thought of posting this announcement. It's still pretty incomplete, but it now has a few built-in demos included. If you try it out, there is code "right there" that you can edit and play with to get a sense of what this thing can do.
Without further ado:
0.4 release announcement: EndBASIC 0.4 release announcement - jmmv.dev
Live interpreter: https://endbasic.jmmv.dev/
Enjoy and merry Xmas if that's your thing!