For anyone out there with an interest in stack-based languages, I highly recommend the book "Thinking Forth" (http://thinking-forth.sourceforge.net/). It is free and "open source".
It is a short read and it attacks some of our dogmas as programmers, such as the high level/low level abstractions. I'm not saying it is right in its claims, but it is a very provoking read and will make you aware of your own dogmas.
Thanks for the recommendation, when I was in high school I had followed a different tutorial and even spent a whole summer holiday trying to build a cargo-cult Forth interpreter in JS to convince my friends to try Forth.
But then I lost interest.
Now that I'm much older I think I will take my shot at reading a more advanced book on Forth.
Does anybody else find the mix of prefix and postfix slightly odd?
For instance, in the repl functions, why is it "see <function name>" not "<function name> see"?
Most of the repls I've used use the same function invocation syntax for built in repl functions as for language ones, although obviously this doesn't have to be the case.
The colon, name and stack comment are all in prefix position. But in an interpreted environment you could maybe swap the semicolon to prefix and the name to postfix but you're still stuck with some prefix token to prevent execution.
Forth also has
Bool if code else code which is essentially prefix. But it boils down to the same reason, you need some prefix to delay execution anyway.
From a sort of conceptual level this is all fine anyway. A big part of stack languages is how they lead to a data flow sort of programming rather than some fundamentalist belief in postfix syntax. So when there is a language construct that doesn't benefit-from/contribute-to that data flow style people choose syntax they find comfortable or readable which is sometimes prefix or even infix.
It is a short read and it attacks some of our dogmas as programmers, such as the high level/low level abstractions. I'm not saying it is right in its claims, but it is a very provoking read and will make you aware of your own dogmas.