There is a family tree here its just not obvious who inherited exactly what. Lets Start with App Inventor, the Google program developed with the Media Lab at MIT. App Inventor is designed to allow anyone, including people unfamiliar with computer programming, to create software applications for the Android operating system (OS). It uses a graphical interface, drag and drop operations in which various objects are linked together to create an app. The screenshot shows App Inventor in action targeting a Android smartphone:
The idea is to make programming Apps for Android doable by ordinary users. If users have seen the Nokia QT environ there is a strong resemblance in the UI aspects. But in December of 2011 Google officially handed back App Inventor to some of its creators at MIT Media Lab and provided funding for its maintenace [and development?]. One can download the latest version create your own Android App linking your Android smartphone to your computer.
Now the Wikipedia article on App Inventor points out that the App Inventors Block Editor for programming App inventor objects has the look and feel of Scratch [and hence Blockly] programming. If you take a look at the Scratch interface one can see the strong influence that Scratch has had on the App Inventor Block Editor and Blockly demo coding.
If Apple owned Scratch they would be patent suing Google seventy Smoot Ways to Heaven or Litigation Hell.
Here is an example of Blockly coding:
The comparison is striking Both have:
1)Drag, drop and snap together Logic and programming Controls;
2)color coding for different elements – Text objects and logic is green, Lists objects are blue, Variables are purple, etc;
3)programming objects can be customized for different settings like the Blockly maze problem versus the Blockly Demo Code;
4)The ability to create procedures or functions [not completely functional in the Blockly demos].
But Scratch 1.4 is a truly complete Sprite Animation system that runs in Linux, Mac and Windows. Scratch has:
1)dozens of copyable and editable and individually programmable sprites;
2)dozens of copyable and editable and programmable stage backgrounds;
3)dozens of copyable and programmable sounds that can be added to from source files;
4)pens that can be programmed for color, opacity, size, and movement on stage;
5)motion and positioning and rotation for sprites;
6)a half a dozen additional core animations for sprites;
7)variables, control, logic and input/output operationsf or complete programming capabilities;
8)Step by step interactive debugging.
In an ironic twist, when Windows 8 brings basic touch screen operations to tablets, Scratch could be one of the Windows 8 killer apps. Kids of all ages will love creating their own Angry Birds or Wily E Coyote programs with animations, color and sound aplenty. And remember the code is free and its not a Metro UI app[although MIT may have something in the works].
How Blockly Differs from Scratch
If you look at the Futures, here is what Google is currently saying:
- Better documentation.
- More blocks (e.g. substring).
- Parameters on procedures/functions.
- Cut, Copy, Paste.
- Improved variable rename dialog.
- Fire events on changes.
- IE support (definitely 10, maybe earlier?).
- Comprehensive testing.
- 40 (human) languages.
- Arduino code generation.
- Tree toolbox.
- Dynamic addition/deletion from toolbox.
- Frequently used category.
- Multi-line strings.
- Colour selection.
- Date/Time selection.
- Icons for context menu.