Live data from Hacker News

Teaching Kids Forth

gracefulliberty.com

61–70 of 73 posts

Re: Teaching Kids Forth

#61
post #58

Earlier quoted context omitted.

yeah kids hate syntax

Also pretty sure that kids won’t ever have to deal with syntax lol. For better or for worse, Human language is the new programming language, it’s just a specialised dialect and field. I do worry that by teaching coding and not programming we are shooting kids in the foot though. You need to ba able to leverage deep insight to lead coding agent swarms to create actually good codebases.

that's why most popular languages (python in particular) are the worst of all worlds - if english is the "programming language" why not use a good runtime?

Re: Teaching Kids Forth

#62
post #12
post #10

Why not Processing or P5.js?

did you read the post? it doesn't mention those by name but the reasons it gives for not teaching other languages/tools apply to those too

Yes, of course. I just wanted to say that I think these tools are very suitable for teaching programming to beginners in a very short time and with excellent feedback. There's no need to go to the margins.

Re: Teaching Kids Forth

#63
post #51

Assuming you’re teaching programming and not “coding”, forth is a fantastic language to teach. 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…

What is the difference between programming and coding? In my mind they're synonymous.

In my mind, programming is the concepts, especially around problem solving with code as a tool, where coding is specific syntax/implementation, a means to an end. Related, you don't get paid to code, you get paid to program.

Re: Teaching Kids Forth

#64
post #58

Earlier quoted context omitted.

Also pretty sure that kids won’t ever have to deal with syntax lol. For better or for worse, Human language is the new programming language, it’s just a specialised dialect and field. I do worry that by teaching coding and not programming we are shooting kids in the foot though. You need to ba able to leverage deep insight to lead coding agent swarms to create actually good codebases.

that's why most popular languages (python in particular) are the worst of all worlds - if english is the "programming language" why not use a good runtime?

[deleted]

Re: Teaching Kids Forth

#65
post #47
post #44

Earlier quoted context omitted.

Python turtle with logo parser and 3D support https://github.com/tkfoss/pylogo3d/tree/main#pylogo3d

Are there physical turtles available? Good for kids to take home an actual plot from their classes.

Didn't publish the backend yet but I experimented with DIY plotter based on Drawing Robot by henryarnold and it works fairly well. I m not sure what to do with the layer between plotter backend and different plotters though.

Re: Teaching Kids Forth

#66
post #51

Assuming you’re teaching programming and not “coding”, forth is a fantastic language to teach. 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…

What is the difference between programming and coding? In my mind they're synonymous.

It’s not really a completely clear distinction, but if I was going to try to describe it:

Coding is writing code to solve a problem. Someone can “know how to code” in one language, and have a very hard time moving away from that language because they understand the symbols more than the ideas.

Programming is approaching a problem space as a system specification problem and solving it with an algorithmic solution, and it doesn’t matter what language you use because you are approaching it from the symantic direction rather than the syntactic one.

You are a programmer when all languages are roughly similar to you, even though you may be much more familiar with the syntax of one than you are with others.

You are a coder when you can write programs, maybe even complicated ones, but you think of the solution in terms of a computer language rather than data structures, transformations, and state machines.

Most people start as coders, unless they come from a computer science background, or start out in assembly or with a little extra push, languages like forth. If you keep going and start to branch out a bit, most people will become programmers to one degree or another within a few years of working or playing in the field.

In short and to overgeneralise to the extreme, the focus is on the code vs the data.

You can also be so far in to the theoretical side that you are a data scientist or mathematician and a coder, but not really a programmer, even though you are solving complex data and algorithmic problems by programming a computer…. So it’s kinda nuanced? I think maybe it’s a matter of how you think about practical computation? But there’s definitely a difference in the depth of knowledge that crosses some kind of inflection point that is non-linear.

Re: Teaching Kids Forth

#67

All things considered, unfortunately , we are better off teaching them plumbing or painting ...

Or just concentrate on reading writing and 'rithmetic and let them find a career they want that isn't forced on them

Extremely hard to predict what the world of careers will look like to someone starting out 20 years from now.

Re: Teaching Kids Forth

#69
post #53

Earlier quoted context omitted.

Forth is very good in this regard, because the word names are short and there is no "fluff" around the syntax if you can even call it syntax. Also there is no need to name your data. Literal numbers can be used just as easily even for memory addresses. However there is no safety net. ;-)

Aside from shooting yourself in the foot, I don't see anything you've shared that can't be done in python.

Of course not. I was merely expressing that Forth makes interactively very easy. And like all languages, it is impossible to evaluate them if you don't use them for some significant amount of time.

Re: Teaching Kids Forth

#70
post #53

Earlier quoted context omitted.

Forth is very good in this regard, because the word names are short and there is no "fluff" around the syntax if you can even call it syntax. Also there is no need to name your data. Literal numbers can be used just as easily even for memory addresses. However there is no safety net. ;-)

Aside from shooting yourself in the foot, I don't see anything you've shared that can't be done in python.

The "no safety net" means that Forth is a low level language. You can touch anything in the machine. Many times it is used without an O/S. So if you push a random number onto the hardware stack you will get burned.
Post reply on HN