Joel decries the movement of Java into CS departments - he wavers a fair bit, but seems to think that students should still be working with languages like C (during the first half or so of the post). He gets to the right point at the bottom though:
The most sympathetic interpretation of why CS departments are so enthusiastic to dumb down their classes is that it leaves them more time to teach actual CS concepts, if they don't need to spend two whole lectures unconfusing students about the difference between, say, a Java int and an Integer. Well, if that's the case, 6.001 has the perfect answer for you: Scheme, a teaching language so simple that the entire language can be taught to bright students in about ten minutes; then you can spend the rest of the semester on fixed points.
That's the problem, and I'll say that using C or C++ are even worse. The students get bogged down in irrelevancies instead of learning something useful. That was the thought behind Pascal years ago, and it's why Scheme, or Smalltalk, or Python, or Ruby would be better choices than those dagnasty C based languages.
Meanwhile, Scoble says that MS is having trouble finding enough C and C++ programmers:
Almost every team I interview with my camcorder says they can’t find enough C or C++ programmers to get their stuff done. Some on very exciting teams with hundreds of millions of users. Some that, gasp, actually have budget to hire real programmers.
They could try doing it the old fashioned way - hire smart people and train them. When I went to work for the DoD (Lo, those many years ago now), that's what they did - a lot of the software developers that came out of DoD weren't even CS grads (I wasn't). You get fewer bad ideas that way, and can train people in your shop idioms.