I recommend Ruby. If my goal is to teach “programming,” then I want a language that has a clear syntax, has very few surprises and allows the student to focus on the “Tao of Programming” and not the “WTF of function-level scope?” A friendly syntax allows students opportunity to work at understanding “programming” before understanding the multiform and delightful ways that different styles of “coding” can provide more or less expressive, concise, or clever ways of achieving crafting the same “programming” unit.
Source: Teaching Ruby over JavaScript – stevengharms.com
This is my friend Steven’s explanation on why Ruby is a better language to learn programming than JavaScript.
Steven is one of the most interesting programmers I know. He simultaneously treats it as pure art, deep science, and true philosophy.
And I agree with him on his points here.
I love that JavaScript is on both the client and the server these days. And that it’s so universal. But the syntax is still too c-like to be a beginner language. You can’t teach running if you have to teach walking and standing as well.
Ruby gets syntax out of the way so you can learn how to think. That’s why it’s the best beginner programing language.