I think a lot of people here are missing Bruce's point, despite the fact that he gave explicit disclaimers about it not being that Scala is "bad" or "complicated" or what have you.

I think the salient point is that for a first language, you don't want to have to introduce a ton of computer science topics just to show a simple example of usage. Explaining things like iterators to someone who is just beginning to learn programming is probably a good recipe for getting them to go learn something else besides programming.

So maybe the conclusion is that people should start out with very simple (if lame) programming languages and do simple (if lame) things like procedural programming. Then work up to more useful things like OOP while upgrading to cooler languages.

A variant of this idea may apply for people learning managed or interpreted languages vs. lower level C/C++ type languages. My impression is that people who grow up on languages that are farther from the metal may be missing a certain sense of how things actually work.