What is Scratch?
Starting from the basics and going all the way up to a programmer's perspective, this section is going to have a few su...
For further actions, you may consider blocking this person and/or reporting abuse
The lack of functions in Scratch was the one thing I found truly irritating when I tried it with my kids. You had no choice but to duplicate code and that's really a bad habit for a budding programmer. I hope they added it since.
At the time I found BYOB (now Snap!) that is basically Scratch with functions and is used to teach university students. Maybe it would be of interest to you, although I don't know if the community there is as vibrant.
Scratch has added functions two versions ago in the 2.0 Preview :)
I don't know when you used Scratch, but it has all sorts of things now!
I like Snap! because of the complexity present. However, I feel like it's missing a community. There's no social interaction. It's great if a kid is trying to code, but if someone's looking for feedback or fame, it's not that great.
I had to check: the last Scratch programs my kids made (that I could find!) date back to 2013. So, yes, it was a while ago.
I'm really glad they added functions, that gives it so much more potential!
BTW, they're not called functions, they're called custom blocks.
Technically. I just avoid scratch terminology since I don't want to confuse non-Scratch users.
This is a very well written post, scratch and other forms of visual programming are playing a larger role in our community than ever before, just look at node graph based programming in Unreal Engine and others. I have looked to scratch to create a simplistic interface for my product configurator project.
I didn't read this post as "just a kid" but a very switched on individual.
Nice :)
"I have looked to scratch to create a simplistic interface for my product configurator project."
Ape
You have opened my eyes to how complicated Scratch can get.
I taught Scratch to a bunch of fourth graders and only a few got it.
So congrats!
Yeah, it can get super confusing from time to time.
Don't do that. Scratch is a terrible teaching tool.
Scratch gets complicated fast because you have to do work arounds and horrible solutions
as a fellow scratcher myself, I started with Scratch (my dad introduced me to it).
Now while the rest of my Grade 9 class is learning scratch, I'm over here creating full-stack apps and ethical hacking and very advanced whatnot. so yeah.... I'm grateful for scratch
While my class (grade 8 now) can't code a platformer in Scratch, I get to be making one in JavaScript
Scratch is genuinely so ass if anyone defends it I automatically consider them unable to write any decent code and also a crappy teacher.
You want to tell me that the best way to teach kids programming is to create an artificial execution pattern that doesn't exist anywhere? Round robin execution is genuinely unique to Scratch. This however is bad in that Scratch IS A TEACHING TOOL! Teaching what? Breaking down a problem? The Farmer was Replaced or Human Resource Machine my dude. But that's where it ends. The very concept of break down the problem is all it teaches. Everything else it teaches is bad habits. Repeat forever is cancer and all that but its patching again the round robin execution.
But of course there is a reason why no actual language does it...
So as a child you are having a bug that surfaces every three or four runs. You hunt and hunt and can't find it, get frusterated quit and think programming isn't for you.
Nope, its just the execution order is hidden and practically random.
Nope, there are race conditions
Nope, there is non determinism.
Scratch is prioritized actually I'm not certain. I guess ease of initial use? Okay the sandbox is easy to get into but I filled it with glass. Goodness, linear execution just do that. No one is saying put Asynch or threading just... Linear execution...
Of course there is the issue in that Scratch spends complexity on wrong stuff. Scratch has over a 100 blocks devoted to stupid features that don't get used. Facial recognition really? The excuse is AI literacy but this is genuine cope. Its like me giving someone a coloring book of Hamlet and declaring they are Shakespeare literate. I'm an AI Engineer myself and these concepts are to complicated for kids. They are actually useless in the goal of making toy projects and games to learn.
But you know what is to complicated?
Maps: Key value stores are to complicated
Linked Lists: Chains apparently aren't something kids understand
Structures: heaven forbid you encapsulate data
Go look at the code for those projects. They are unreadable crap. And its not their fault, its because if you want to pass around data together you have to do ugly unreadable and undebugable indexed lists.
For loops don't have indexes. Again it forces spagetti solutions.
This is just my breif rant but I'm tempted to write my own because Scratch was made by literal apes.
I prefer mBlock (another visual based code editor like Scratch). The ability to use micropython and code extensions for it with JS really is a great segway from blocks to real code.