There are a million opinions on this subject. But actually programming by all students be it basic, java, javascript, html, c, flash, etc...is going to be a rough class for 90 percent of the students. And this might not be because they are not capable. It might just be socially more important to NOT excel at computer programming.
When I was a youth my father taught basic on Apple II's to all students in their 7th and 8th grade school. This was a 4 week class for everyone in the school. And it was generally disliked by most.
And programming in basic on an Apple II was much simpler than today and the heavy frameworks we deal with.
This brings me to Scratch from MIT. I downloaded this when it was released a few years back. It was fine. I build similar products in my real life so I am always interested to see what others are doing. This is free. It is visual. Teaches constructs of event programming. Deals with basic logic. All things that are good to help kids understand. The community seems to have grown a lot since then.
Explore and give it a try.
http://scratch.mit.edu/