Try Blockly
Blockly Basics

The Blockly library adds an editor to your app that represents coding concepts as interlocking blocks. Blockly generates simple, syntactically-correct code from the blocks in the editor, which your app can use to run games, control robots, or do anything else your imagination can concieve.
Built with Blockly
Blockly is being used by hundreds of projects, most of them educational:
Blockly for Web
Blockly in a browser allows web pages to include a visual code editor for any of Blockly's five supported programming languages, or your own. In Blockly Games, pictured here, users can solve a maze using Blockly's editor on the right.
Blockly is...
- Pure JavaScript library. Under 150kb over the wire.
- 100% client side. No server side dependencies.
- Compatible with all major browsers: Chrome, Firefox, Safari, Opera, and IE.
- Highly customizable and extensible.
iOS and Android
Blockly running natively on iOS and Android demonstrates improved performance and tighter integration with platform UI frameworks. In addition to standard features, Blockly for iOS includes experimental support for multitouch capabilities and block animations. Blockly for Android provides deep support for Fragments and UI customization.
The Android and iOS versions contain all the core features needed to make an app, though not all features of web are available on mobile. The Blockly team is actively working on achieving full feature parity with web and supporting cross platform development.
Scratch Blocks (developer preview)
Google and the MIT Media Lab’s Scratch Team are collaborating on the development of a new generation of graphical programming blocks, called Scratch Blocks. Scratch Blocks builds on Google’s Blockly technology and the Scratch team’s expertise in designing creative interfaces for young learners.
Scratch Blocks is...
- A collaboration between MIT and Google, built on Blockly.
- Beginner friendly with an icon based horizontal UI.
- Scratch's standard vertical UI (in progress).
- Designed specifically for younger kids.