From "Proving and Improving Teaching Programming Languages":
SIGPLAN Education Board has produced a report "Why undergraduates should learn the principles of programming languages" which was presented at the ACM Education Council meeting. It makes four claims for why students should study programming languages:
  • Students learn widely-applicable design and implementation techniques.
  • Many students will need to create new domain specific languages or virtual machines, so it's useful for them to study what's known about languages.
  • By learning programming languages, students learn new computational models and speed learning of new languages. "The best preparation for quickly learning and effectively using new languages is understanding the fundamentals underlying all programming languages and to have some prior experience with a variety of computational models."
  • Students learn how to choose the right programming language for a task.
The problem is that we have empirical support for none of these claims. People are amazingly bad at transferring knowledge. People tend to learn about a specific situation and not recognize when the same idea applies in a new situation---or worse, they transfer negatively, mistaking the similarity and using older knowledge in an incorrect way.