You create programs by joining pieces together, and are restricted in the same way puzzle pieces are, by what fits where. This is an ingenious and easy to understand method of ensuring that the program is correct. It short cuts the process of having to learn correct syntax. If the pieces fit, the program works.
Visual Programming Languages have been around for some time. Wikipedia lists over 100 VPLs. The similarity between Blockly and MIT App Inventor are obvious.
The Maze demo page lets you try Blockly by creating a program that moves a pointer through a maze. Initially it just has a Move Forward piece, and you have to click the Commands or Logic buttons to view all the available commands. You then select a command and drag it into place. This problem can be solved in a variety of ways.
The shape of the pieces dictates what can and can’t be used. When you drag a piece inside another, the enclosing piece expands so they fit cozily together. If there is a + in the shape as in the “if then” piece, clicking the + let’s you configure it. Pieces that have a different colored word inside (like “forward” in “Move Forward”) provide extra options. For example, you click “Forward” to get a popup that lets you select either “Forward” or “Backward” movement.
It’s a delight to play with. As the IDE executes each part of your program, that part is highlighted. It’s not exactly debugging, but it lets you work out where things are going wrong.
I reckon the Maze demo would make an excellent programming interview question. It’s certainly something that would challenge a bright kid. As a way to get them involved, this is wonderful, and something that I’d have loved to have learned with with at an early age.