jmoenig/Snap–Build-Your-Own-Blocks
Snap! has a new release with interesting experimental features. Snap! is an open source visual programming environment based on Scratch. Snap! tends to extend the capabilities and opportunities presented by Scratch in interesting ways. There is an ongoing tension between ease of learning and what I will call an advanced feature set. What Mitch Resnick terms the low floor (low barrier to entry) and the high ceiling (rich and complicated, often abstract, computational capabilities). UX and UI practitioners should pay attention to both of these projects.
Google has a version, too, adopted by Code Academy. I find that one incoherent and frustrating. Therein also lies a lesson.