Teaching Kids Forth
Posted by rbanffy 23 hours ago
Comments
Comment by K0balt 3 hours ago
First it’s easy to understand. Second, it’s completely unopinionated, and you can take it anywhere you want to. To write a program in forth is to create a domain specific language for solving that problem.
Forth embodies functional as well as procedural programming, is a high level class language (not Assembler) yet also if you understand forth, you will pick up assembler very easily. (Unlike, say, JavaScript)
It sits precisely in the sweet spot of a central set off paradigms that, once understood, form a bridge to every kind of computer programming, as well as to a whole bunch of data abstractions at a low level.
It might even be the -only- language that people who will learn to program using AI would have to learn, as long as they went deep. At that point they could conceptually work with high level descriptions of what they intended for the coding agent to create, without having the underpinnings be completely opaque, regardless of the actual language used.
Comment by fasterik 16 minutes ago
Comment by liveoneggs 1 hour ago
Comment by K0balt 45 minutes ago
Comment by K0balt 49 minutes ago
Comment by jeberle 20 hours ago
Comment by dark_star 20 hours ago
Comment by fuzztester 28 minutes ago
er ...
There is also Thinking Forth.
https://www.forth.com/wp-content/uploads/2018/11/thinking-fo...
Comment by veltas 22 hours ago
Comment by ndiddy 18 hours ago
Comment by HelloNurse 8 hours ago
If one understands adding and consuming values at the top of the stack, putting the stack in the state you want it is certainly a small logical step without new theoretical baggage.
Word definitions and the accompanying pointer tricks are more likely to be challenging.
Comment by ndiddy 1 hour ago
Comment by rbanffy 22 hours ago
Not sure they are that interested in programming, but FORTH is a little sweet language.
My first experience with it was Paul Lutus’ GraFORTH. On the Apple II it was ridiculously fast.
Comment by JSR_FDED 20 hours ago
Comment by fuzztester 17 hours ago
n coined the term careware. iirc.
first-hand info. i had downloaded n used arachnophilia.
he is on hn.
Comment by rbanffy 12 hours ago
Comment by noosphr 18 hours ago
Comment by pitchlatte 15 hours ago
Comment by cultofmetatron 12 hours ago
Comment by pitchlatte 12 hours ago
Comment by lioeters 12 hours ago
Comment by antonvs 11 hours ago
Comment by Someone 10 hours ago
Prefix technically doesn’t need, either, if you avoid functions taking variable number of arguments and have a grammar that can reliably detect function calls (could be hard if you’re allowing higher-order functions)
Even with functions taking a variable number of arguments, you could do it the C way and use the argc, argv trick, giving you
* 2 + 3 5 6 7 3 ⇒ (* (+ 5 6 7) 3) ⇒ 54
I think you’d have to be a bit of a masochist to do that, though.That also is why I think varargs functions tend to be rare in bare bones forths. You’d have to write
5 6 7 3 + 3 2 *
Using custom names for the varargs functions would help for the 2-argument version.Comment by songhonglei1985 18 hours ago
Comment by sudb 20 hours ago
Comment by veltas 13 hours ago
What seems to happen is it will get a lot of words like curriculum wrong that people rarely spell incorrectly because they're long enough that if your English isn't confident you would look it up or use a spell checker, or spell words incorrectly that people don't usually spell wrong like 'imediate' or 'puzzel'.
Comment by gracefulliberty 12 hours ago
Comment by veltas 12 hours ago
Comment by dgrabla 13 hours ago
Comment by lebuffon 17 hours ago
I think another area where Forth can help young people is in understanding some low level details like memory addresses and reading and writing memory. It seems simpler than abstracting it to "pointers", more like assembler but interactive.
Comment by rwmj 11 hours ago
Comment by lebuffon 3 hours ago
However there is no safety net. ;-)
Comment by exe34 2 hours ago
Comment by 6581 11 hours ago
"Starting Forth" by Leo Brodie was the first programming book I ever read when I was about 6 or 7 years old, after my dad brought it home from work (where they used Forth). To me, the language felt very intuitive and easy to grasp. And Brodie's illustrations helped a lot with visualizing how it all worked.
Comment by bolangi 18 hours ago
Comment by cameldrv 21 hours ago
Comment by rwmj 11 hours ago
Comment by tkfoss 10 hours ago
Comment by rwmj 10 hours ago
Comment by sieste 15 hours ago
Sorry but this reads like a joke. If you find python incomprehensible, Forth and Haskell won't even register as languages.
Comment by exe34 2 hours ago
Procedures are a lot harder to explain the first time to people who work with maths functions, especially if you call procedures functions.
Comment by NotGMan 11 hours ago
This language is simple unintuitive and the Polish math notation will cause even more confusion.
>> Overall, I don't believe the programming language matters all too much.
Delusional. There is a reason why 99.99% of large projects are done in imperative languages.
I like programming a lot but if my programming journey were started by this teacher and might just became a chef instead.
This seems to be a "do novel things for novelty sake" thing.
Kids need to see the practical applications in the simples and most intuitive way of the things they are learning.
Forth or similar languages are not it.
Even in university level students these languages are both confusing and unintuitive and slow to develop in compared to imperative languages.
Comment by benj111 11 hours ago
It's got some extremely simple rules. 1 data structure. And nothing is particularly hidden.
Python might be better for actually producing something, but from a 'teaching how computers work' pov, forth would seem to have it's merits. Python hides a lot of stuff, thus we have a situation where people think compilers and interpreters are magical things. If you don't care how the computer works, that's fine, but personally I'd like to teach my kid how a computer works, not how to use some programming language.
Comment by anta40 10 hours ago
I wonder if assembly is a better choice... hmmm...
Comment by benj111 10 hours ago
Assembly is add R1 R2. Forth takes the 2 numbers from the TOS and puts it in those registers. That wasn't obvious what was happening in the post, I wonder if student me would have wondered.
You could make the case for going all the way down to the silicon.
We teach English, maths, science to give a rounded understanding, not to make student productive or give them information that will be immediately useful. IT/computing in secondary school should be doing a similar thing. It should remove the mystery of what a computer is. That it is programmable. Hopefully it's improved since I was young and we were basically shown how to use Excel.
Comment by AI_hacker 22 hours ago
Comment by hecreto 22 hours ago
Comment by beyonddream 22 hours ago
Comment by Loughla 21 hours ago
Comment by q2dg 21 hours ago
Comment by peesem 20 hours ago
Comment by pbgcp2026 18 hours ago
Comment by assimpleaspossi 18 hours ago