Comment by anotherlab
19 days ago
Back in the VIC-20 days, I had the VIC Forth (https://ia800304.us.archive.org/34/items/VIC_Forth_1982_HES/... and https://photobubba.com/wp-content/uploads/2016/06/an-intervi...) cartridge and the book Starting Forth (https://www.forth.com/starting-forth/). It was my second programming language, after BASIC.
Like everything else, it was easy do simple things, much harder to do anything else. My brain also rejected doing stuff with postfix notation.
It always fun trying to explain Forth to developers used to higher level languages. It always came down to "a word is like a function, but not really"
Word is an internal call, it's a function, but the key is that the parameters and local variables are on the data stack and are separate from the return stack. I can call many levels without touching the data stack! Impossible in other languages. However, this does require practice and a change of mindset. At runtime, the dictionary doesn't exist, and under certain conditions and with the correct compiler, the stack doesn't either; it's converted into registers.