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.

The Blockly library adds an editor to your app that represents coding concepts as interlocking blocks.
It outputs syntactically correct code in the programming language of your choice.
Custom blocks may be created to connect to your own application.

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.

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.