I believe that it is important to keep in mind the audience. I understand every side being argued here, but I believe that everyone is approaching the topic from a developer perspective, instead of the child perspective. I'm here to advocate for both.
What is the goal??
Well, this might be another topic of contention, but I believe it is to get kids (read: 12 year olds) excited about creating things, and this could be anything from stories to animations or games. If they are excited/interested, they will tend to revisit or stick with something. And after repeated exposure (10,000 hours, via Malcolm Gladwell) you will be good at it.
Kids, especially at that age, are very fickle. They don't know what they like but they DEFINITELY know what they don't like. I understand fringe cases out there, but it is generally safe to say that kids don't like typing code, let alone anything with any kind of syntax (even if you are a gifted top 20% child). Therefore trying to ignite some interest in game creation (via syntax/text) will largely fail because kids get turned off before they can actually make something they can appreciate.
Start kids with a visual programming language. Syntax and actual code is the least interesting and least rewarding part of programming. On the other hand, getting kids excited about programming and getting them to understand programming concepts(loops, variables, objects, functions, etc) is how to create GREAT programmers.
I know what everyone is going to say. Visual Programming languages such as Scratch isn't REAL programming (I agree), but I believe it starts kids on a path to real programming.
That said, there are many problems that I have with Scratch. Feel free to reach out to me for recommendations!