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
Well first of all, the current version of Blockly does not have Scratches step by step debugging or its sound, color, sprite and other media extensions. Second Blockly is coded in JavaScript . Third unlike Scratch, because Blockly is written in JavaScript it runs in most browsers [in my tests it ran in Chrome 18, Firefox 10, Maxathon 3, Opera 11, Safari 5.2 but NOT in either IE8 or IE9]. But most important of all, Blockly does not have a complete IDE like App Inventor or Scratch. However, Blockly does produce usable code in JavaScript, Dart, Pythons and XML.
If you look at the Futures, here is what Google is currently saying:
Short-term goals
- Better documentation.
- More blocks (e.g. substring).
- Parameters on procedures/functions.
- Cut, Copy, Paste.
Medium-term goals
- 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.
- Compile JavaScript into single file.
First, these goals appear to be doable but also they give Google a fair degree of wiggle room in implementation. Will Blockly start to appear in an IDE like interface with save or edit ? Nothing stated explicitly but as mentioned with Tree Toolbox and Compile javaScript into a single file basic file open and save operations are in the cards. But rather than predict, lets see what is available for Christmas 2012.