Not sure I would teach a language, as such. What is a programming language, after all? Local syntax 'for if...then... else', 'do...while', and so on? It is core concepts, that are needed.
I work for a company that has done a lot of acquisitions, over the years, and as such my working week can take me from COBOL, through .NET languages, to PHP, Python or Perl. I can point to truely appaling examples of bad coding in all of those languages (with some of the more recent ones - with the best object-oriented support - being the greatest culprits).
But all of that wrapping is only a means of getting other stuff done: pushing data into and out of databases or files, evaluating connections, sending bytes down encrypted tunnels, perfoming scheduled work, and testing regular expressions. These are the areas younger programmers are often weakest in. You could write a piece of Perl to wrap around a bunch of queries, a n XSLT transformation and a few regexes and get the same work done, as if you'd written it in C# or whatever. But without the queries, the transformation and the regexes, all that other code is just so many loops and conditionals, regardless of the language.
Good languages only abstract you from themselves: they cannot abstract you from the work that is being done, and there's no point abstracting yourself from a badly-written SQL query, an inefficient Regular Expression, a poorly worked-out XSLT transformation. While companies continue to write (or acquire) so many roll-your-own approaches to data, then it's these things that offer greatest efficiency potential, and are the greatest asset in an employee. The stuff that loops around the outside of it is fairly incidental, in my experience.