I built an online IDE for creating HTML5 games in Javascript that is perfect for the classroom. Then I taught a class using just Javascript and HTML5 Canvas to 11 year old kids in my son's class.
They were fully capable of using straight black-and-white code to get things done. And they were thrilled to see their colorful results on the screen. Learning how to clear the background with different colors got them pumped. Drawing circles and moving them across the canvas was an actual thrill.
After only an hour, I lost control. They were off trying to make their programs do great things without me. They were trying and failing, and then succeeding, on their own. I was running around the classroom helping them figure out little syntax issues so they could keep going, and everyone was having a blast.
One kid would get his program to do something strange, and he'd call everyone over, and everyone would ask "how'd you do that!?" and he would become the teacher for a moment - and the kids would run off and keep trying new things.
There is just something magical about going from plain text to a working program. Writing "DrawCircle 10,10,50" to draw a circle is pure awesome. When you are learning - this makes you feel like a real hacker. You take this kind of thing home and blow the socks off mom and dad too.
Side-note, before I created my little web-IDE for this class, I looked at a bunch of these kid-style languages. I opted for straight code because I remembered my own beginnings. I used QBasic for everything, but when it came time to learn more advanced programming, I struggled for too long because of it. I didn't want my kids growing up like I did, not knowing what to do without GOTO. I didn't want them not knowing what to do if they couldn't drag and drop an IF block into their IDE.