My friend Rob tweets:
The more experience I get with Ruby, the more irresponsible I feel when teaching it to new devs.
OK, so I think Ruby is a good language to use to start teaching programming for a number of reasons.
First, I believe it's best to start beginners with an object-oriented language. The OO paradigm provides, in my opinion, the best balance between power and comprehensibility. I'm happy to concede that OO languages do not immediately make sense to a lot of people in a way that procedural languages do. After all, if you can read a recipe, you can basically read procedural code. The problem is that it's pretty difficult to do anything interesting in procedural languages and doing interesting things is what will motivate a person to get past their early, and inevitable, frustration. You might accept this but argue that functional languages have a high degree of power and should be the starting point. Unfortunately, while functional