I'd like to highlight your mention of Scratch. I agree that Ruby is an excellent language for introducing older students to programming, but Scratch is truly exceptional for younger students. Scratch excels at introducing fundamental programming concepts,while hiding syntax and language subtleties for beginners. The puzzle/block metaphor of Scratch really works for "building" a fully-functional program. For those that have never worked with Scratch, the underlying Squeak(Smalltalk) implementation is completely hidden.
I guess the choice of language really comes down to the audience and age group. It's unlikely that colleges will ever utilize Scratch in their introduction to programming courses, thus Ruby is an excellent choice. But elementary and middle school students would benefit greatly from learning programming concepts such as logic, control structures, iteration, etc. from a tool like Scratch.
I guess the choice of language really comes down to the audience and age group. It's unlikely that colleges will ever utilize Scratch in their introduction to programming courses, thus Ruby is an excellent choice. But elementary and middle school students would benefit greatly from learning programming concepts such as logic, control structures, iteration, etc. from a tool like Scratch.