Learning Programming is damaging to students

Slashdot | Professors Slam Java As "Damaging" To Students

Seems everything old is new again. When I was in college, the language-du-jour was Pascal. Back then, there was a growing trend away from Pascal and how it abstracted away important parts from the system (like dealing with a filesystem, and so forth). In 1981, Brian Kernighan (the "K" in the K&R C book, and one of the authors of the C language) opined Why Pascal Is Not My Favorite Language. It rings true even today why instructors aren't to pleased with the introductory languages. It's a hard problem, because when you begin teaching a person about programing computers, you need to instruct them not only on how to interact with the computer (the environment, and the programming language), but then have to instruct them on how the computer will handle that code (the data structures, execution time, algorithms, etc.) Some computer languages effectively hide the underlying computer from the programmer (some better than others). Java is designed to run under a Virtual Machine (a machine that doesn't necessarily correspond to the underlying hardware of the actual machine). This makes Java a seductive choice for a first language, and several institutions have gravitated towards that choice. Unfortunately, Java has become quite popular in the business world, so students, thinking they have learned the totality of computer science with one language, are then reluctant to try other, more difficult languages. This is the real trap of Java. It doesn't matter if your first programming language is BASIC, Assembler, or Snobol; if you are interested in learning computers, you'll learn computers. You may have a better time of it if you learn the lower-level concepts in a language like Assembler or C, but if you're sufficiently motivated, you can learn anything. Unless the professors make it clear that the goal of their classes is not to learn Java, but instead to learn computer programming, this problem will perpetuate itself no matter what language is taught. It was true for Pascal, Basic (Visual or otherwise), and probably even Fortran (though I'm not sure if there's a "Fortran is damaging to students" article out there).