I'm actually a huge fan of scratch. It has a really neat programming model, it's implicitly parallel and uses events as it's primary means of inter-object communication. Through the use of components like the scratch board & lego WeDo it allows one to quickly build programs that interact with the real world.
I love the idea of the language mixed with visual affordances. I am though torn between whether its too much clutter or does it make the code easier to read and drill down.