Blocks can have a few special virtues:
• You can see all the available blocks.
• They snap together easily.
• You don't end up with syntax errors.
Scratch feels more refined, but it's nice to see many running with the basic idea. For example, the radio tools seem similar to messages, but don't seem to have the same rich concurrency model.
The language itself is no more than what we're familiar with from structured, imperative programming. Still structured, imperative programming is what a lot of us do.