In this blogpost called The Perils of JavaSchools Joel Spolsky wrote that Java as a beginner language doesn't foster good developers as well as C (for example) does. It just occurred to me that I'm not without guilt. I was one of those responsible for the decision to move from C++ to Java as the main language for the software engineers at the university I taught at 1994. I think we were pioneers and I still stand by the decision. It lessens the effect of not seeing the forest for the trees I think, which I still believe is valuable for beginners.

Something similar is happening now with Ruby which many think is a great way of teaching concepts with less distractions.

And with lots of concepts in place, the students are ready for taking courses learning other concepts and other languages, such as functional languages and pointed-focused languages for example.

So, is it best starting out with tough language or a simple one? Pros and cons I guess?