Paul Jansen, managing director of TIOBE software, maintains the TIOBE index of popular programming languages, which heres the key point ranks Java as the top programming language.
Robert Dewar, professor emeritus of computer science at New York University and CEO of software firm AdaCore, deplores Javas dominant role in todays college programs. While not against Java itself, he feels that its many pre-written libraries allow students to develop software without truly understanding deep programming.
As noted in this interview The 'Anti-Java' Professor and the Jobless Programmers he claims that Javas classroom prevalence is churning out CS grads who are marginally competent. At worse, theyre easily replaced by offshore programmers.
Moreover, Dewar refers to the TIOBE index as meaningless, opining that the indexs emphasis on a languages Web presence limits its value. Many serious application developers are not even present on the Web, which tends to overemphasize academic and hobbyist views, he says. As the list itself says, this has nothing to do with quality of languages or level of usage.
So, given that I had asked professor Dewar his view of TIOBE, I felt inclined to check with Paul Jansen to get his response. Is the TIOBE index meaningless? Does it perhaps rank Java too highly?
Jansens response: Robert Dewar is ignoring an important change in the software engineering community.
First, Jansen compares the evolution of programming to the development of the automobile in the early 1900s. In the previous century the motto was If you don't understand the machine (such as its memory model) you can't program. Compare this with the early days of the car: If you didn't know how engines worked, you couldn't drive; the machines broke more often than now and there were less skilled engineers to fix them.
Do you need to know something about engines to be a professional driver nowadays? I don't think so. Taxi drivers dont know that much about their engines. There is, of course, an exception. If we look at the high tech side of the car industry in car racing then you need to know something about the car engine in order to get the most out of it.
If we translate this to the story of Robert Dewar then he is either still in the old days of computing, or he is only surrounded by very high tech and demanding companies. I suspect that he is a little of both.
In the interview with Dewar, I paraphrased his attitude about Java in the classroom by writing, "Consequently, CS majors sail through a curriculum of Math Lite, earning a smiley-face on their papers for developing projects using pre-built libraries."
Jansen disagrees with this attitude. It shows that he doesn't understand that nowadays its important to select the right components and assemble them into a working application. Its a skill to do this right it is far from easy, given the vast amount of libraries. You don't need to know about pointers or learn to program Ada to become excellent in this skill.
Jansen refers back to his analogy of cars and programming, in which todays drivers dont need to fully understand whats under the hood:
In short, software development is a dynamic business, and those entering the field need to focus on the current realities.
I agree that the list is indeed meaningless in the context of the anti-Java professor. He wants to educate people in the good old way of engineering. Nothing wrong with that. We only monitor new trends. Such as the need for dynamic typing, the introduction of generics, and the integration of functional programming elements in object-oriented languages. We try to understand why the programming language market is moving in such directions. That is something completely different.
Oh, and About Outsourcing
There is at least one area in which Dewar and Jansen agree and it has huge implications for todays young programmers.
Noted Dewar: "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."
Jansen sees this similarly. He is right in this. But outsourced to whom? India? China? The scope of the TIOBE index is the entire world, not only the U.S. software market. So this doesn't count as an argument against the TIOBE index.
A major question is posed by the fact that both Dewar and Jansen agree that Java skills alone wont enable a programmer to survive outsourcing. If this is true, should Java play such a dominant role in the classrooms of U.S. universities?