Any reason why such well known project was posted now?
I like Scratch's shape-based typing. If the shape doesn't fit it's wrong type, and you can visually look for adapter to covert it to correct type. For example, IF has hexagonal hole and variable is oval shaped, you see that they don't fit together. So you go through available blocks and find operator > which is hexagonal on outside and has oval holes. It is both brilliant and obvious design in retrospect.
On the other hand, the language doesn't gain much by being visual. It looks like Lua that's chopped up in draggable pieces. You can still make syntax errors but they are silently ignored? The complexity is limited to how much you can fit on canvas. The language doesn't teach anything about abstracting away already solved problems.
The execution environment is great. The only thing I would change there are provided graphics sprites. Even that simplistic cat mascot is too high-definition compared to what you can draw with built-in paint tool. Perhaps if all provided graphics was drawn in that same tool, it would set a better stage for creativity.
Part of a previous internship of mine involved teaching Scratch to kids in 2nd to 4th grades. We taught Python to kids around the 7th and 8th grade. Scratch is much better suited to younger children, imo.
I taught python to some 5th-6th graders. I forgot what it was like to be that age - they're really slow at typing, and roughly as fast as an adult at mousing.
Scratch has been great for my 10 year old daughter. She was off last week for spring break and started learning it on Saturday. By the following weekend she had written 4 or 5 games and was so proud of her first platformer game.
It teaches some solid programming concepts and the ability to easily "remix" (aka fork) someone else's code is a great feature.
The only downside is that now she's obsessed with how many likes she is getting on her games once she publishes them.
Not suitable for touch-typing code writers. (Interestingly enough, visual programming is closer to doing mathematics, in that mathematical notation is often non-linear but rather two-dimensional.)
The other way around - Scratch is the original (though inspired by the earlier Etoys and other systems) and has become the standard to be copied by other block based languages (not counting those directly derived from it like Berkeley's Snap!). Pretty much like most new languages looked like Algol/Pascal until the late 1980s when they all started to look like C instead.
I like Scratch's shape-based typing. If the shape doesn't fit it's wrong type, and you can visually look for adapter to covert it to correct type. For example, IF has hexagonal hole and variable is oval shaped, you see that they don't fit together. So you go through available blocks and find operator > which is hexagonal on outside and has oval holes. It is both brilliant and obvious design in retrospect.
On the other hand, the language doesn't gain much by being visual. It looks like Lua that's chopped up in draggable pieces. You can still make syntax errors but they are silently ignored? The complexity is limited to how much you can fit on canvas. The language doesn't teach anything about abstracting away already solved problems.
The execution environment is great. The only thing I would change there are provided graphics sprites. Even that simplistic cat mascot is too high-definition compared to what you can draw with built-in paint tool. Perhaps if all provided graphics was drawn in that same tool, it would set a better stage for creativity.