I was just about to write a response to 'Scratch bashing' ;-). Luckily you have voiced most of them. So I'd like to add the following:
The Scratch programming environment, being the most child-friendly system I've ever seen so far (and I have tried to teach children, as well as adults with zero prior programming experience, using environments as different from each other as StarLogo and Python), lets children create amazing programs, but most important of all introduce the fundamentals of computational thinking and creativity with almost zero barriers for entry. From a programming perspective it definitely has a lot of shortcomings (most of which have been addresses by 'add-on's or similar systems built on top of it) but if you want to show the basics to a bunch of kids who are 7 or 8 year olds, then it is a great system.
Moreover, the social aspects of Scratch, namely easily publishing your projects and seeing the source code of others, are a gift. Try to do the same with Python and GitHub (one of my favorite combinations when I'm not dealing with children ;-), starting from scratch (some pun intended) and showing them all the tools... I'm curious how far their attention span would go.
The Scratch programming environment, being the most child-friendly system I've ever seen so far (and I have tried to teach children, as well as adults with zero prior programming experience, using environments as different from each other as StarLogo and Python), lets children create amazing programs, but most important of all introduce the fundamentals of computational thinking and creativity with almost zero barriers for entry. From a programming perspective it definitely has a lot of shortcomings (most of which have been addresses by 'add-on's or similar systems built on top of it) but if you want to show the basics to a bunch of kids who are 7 or 8 year olds, then it is a great system.
Moreover, the social aspects of Scratch, namely easily publishing your projects and seeing the source code of others, are a gift. Try to do the same with Python and GitHub (one of my favorite combinations when I'm not dealing with children ;-), starting from scratch (some pun intended) and showing them all the tools... I'm curious how far their attention span would go.
Finally, apparently a number guessing game can be super easily implemented with a 'fake programming language' such as Scratch, too: http://scratch.mit.edu/projects/emres/2859373
And the source code, plain and simple, is probably easier to explain to children (and I had kids create much more complex games, animations, quizzes, etc. with Scratch): http://www.flickr.com/photos/64416865@N00/8121602786/in/phot...
PS: For a nice account of Scratch from a veteran compile developer please see: "Teach children planning and problem solving not programming" http://shape-of-code.coding-guidelines.com/2012/09/20/teach-...