leah & nybbles & bytes, oh my! on Nostr: to expand on that a bit, and also mention the issue i have with Forth-like systems ...
to expand on that a bit, and also mention the issue i have with Forth-like systems built around VMs, is also the reason that every good Forth system comes with an assembler:
if you can't drop down into assembler when you need to, Forth loses one of its most important properties: that it can be extended almost infinitely in either direction of level. you can build Forth all the way up to Factor if you want to, and equally well, you can use it to tinker with the way your machine works on a fundamental level.
but *only* if you can drop down into machine code to do it. if you can do that, you can add new primitives to Forth; you can tinker around with the bits of the machine that aren't accessible from the Forth surface, and bring them to that surface; you can even add a type system to Forth, and garbage collection, and polymorphic methods... with no loss of efficiency
if you can't, you can still do a lot of that, but there's always going to be limits & impedance mismatches. and locals!
if you can't drop down into assembler when you need to, Forth loses one of its most important properties: that it can be extended almost infinitely in either direction of level. you can build Forth all the way up to Factor if you want to, and equally well, you can use it to tinker with the way your machine works on a fundamental level.
but *only* if you can drop down into machine code to do it. if you can do that, you can add new primitives to Forth; you can tinker around with the bits of the machine that aren't accessible from the Forth surface, and bring them to that surface; you can even add a type system to Forth, and garbage collection, and polymorphic methods... with no loss of efficiency
if you can't, you can still do a lot of that, but there's always going to be limits & impedance mismatches. and locals!