A few months ago, I posted a link to an article deriding the current focus on Java in schools. Here's a quote from that article:

…Computer Science (CS) education is neglecting basic skills, in particular in the areas of programming and formal methods. We consider that the general adoption of Java as a first programming language is in part responsible for this decline. We examine briefly the set of programming skills that should be part of every software professional's repertoire.

An interesting read. What's more interesting (at least to me) is that I used to agree whole heartedly with it's sentiments. However, I've recently been writing a lot more code in Java than C++ and interestingly, I'm getting to like and appreciate it more - appreciate it's power, expressiveness and yes, performance.

Anyhow, today along came another article in a similar vein.

In an interview with Robert Dewar from New York University, James Maguire writes:

In essence, he said that today's Java-savvy college grad is tomorrow's pizza delivery man. Their skills are so easily outsourced that they're heading for near-term obsolescence.

Dewar stresses that he's not against Java itself. But the fact that Java is taught as the core language in so many colleges is resulting in a weak field of computer science grads, he says.

Later on, we are told:

“Furthermore, Java is mainly used in Web applications that are mostly fairly trivial,” Dewar says, with his characteristic candor. “If all we do is train students to be able to do simple Web programming in Java, they won't get jobs, since those are the jobs that can be easily outsourced. What we need are software engineers who understand how to build complex systems.”

Dewar obviously hasn't been out in industry very much recently. I know of quite a few very complex systems implemented in Java…