Professors Slam Java
Computer Science Education: Where Are the Software Engineers of Tomorrow?
I have to say, I found this one particularly amusing. Mainly for one quote in the article:
Ada is the language of software engineering par excellence.
Now, I know everyone has their own favourite programming languages, and I know that this is largely an irrational choice based on what we're familiar with... but why oh why publish an article with a slant like that, when the two writers are the President and Vice-President of the company that sells Ada?
Author one: Robert B.K. Dewar, Ph.D., is president of AdaCore and a professor emeritus of computer science at New York University. He has been involved in the design and implementation of Ada since 1980 as a distinguished reviewer, a member of the Ada Rapporteur group, and the chief architect of Gnu Ada Translator.
Author two: Edmond Schonberg, Ph.D., is vice-president of AdaCore and a professor emeritus of computer science at New York University. He has been involved in the implementation of Ada since 1981. With Robert Dewar and other collaborators, he created the first validated implementation of Ada83, the first prototype compiler for Ada9X, and the first full implementation of Ada2005.
Seriously, why give any credence to such an obviously biased article? It beggars the imagination.
However, the editoral slant aside, the article is based on the same incorrect reasoning that continually crops up in this particular discussion - people confuse the tool with the technique. I personally think Java is an excellent teaching language, and while the criticisms in the article do occasionally have some relevance, they are critiques of a way of teaching Java, not with Java itself. For example:
'The irresistible beauty of programming consists in the reduction of complex formal processes to a very small set of primitive operations. Java, instead of exposing this beauty, encourages the programmer to approach problem-solving like a plumber in a hardware store: by rummaging through a multitude of drawers (i.e. packages) we will end up finding some gadget (i.e. class) that does roughly what we want.'
Well, let's put aside the 'Programming as The Purity Of The Mathematical' pseudo-intellectual nonsense at the start, and look at the core argument - Java encourages students to use pre-existing tools rather than write their own.
In industry, that's an unarguable benefit - reuse is one of the big benefits to an OO language. However, that's not the way to teach Java. Using Java does not preclude you from making students implement a binary search, or a linked list. The requirements of academia are not those of industry, and so you simply prohibit the use of existing solutions if you want to cover the topics. It's not hard - look through the Javanomicon and you'll see coverage of the key 'hidden' topics of Java, such as sorting, searching, and the mechanics of hashmaps.
Then, another quote from Bjarne Stroustrup: I have had a lot of complaints about that [the use of Java as a first programming language] from industry, specifically from AT&T, IBM, Intel, Bloomberg, NI, Microsoft, Lockheed-Martin, and more.
And then the situation's happy resolution:
It [Texas A&M] did [teach Java as the first language]. Then I started teaching C++ to the electrical engineers and when the EE students started to out-program the CS students, the CS department switched to C++.
Damning criticism indeed, from the man who designed and implemented C++. It's comical, really.
So yes, utter twaddle, from two ridiculously biased, unprincipled hacks. Sell your product, by all means - but don't dress up your adverts as research - that's shameful.
Drakkos.

