Jump to content
The Inquirer-Home

Boffins deride Java

Death of learning
Tuesday, 8 January 2008, 18:32

JAVA is killing the ability of students to program properly according to to boffins at the University of Chicago.

In a report with the catchy title Computer Science Education: Where Are the Software Engineers of Tomorrow? boffins Dr. Robert B.K. Dewar and Dr. Edmond Schonberg claim that Java is the root of all evil.

Part of the reason is that it is so popular in the context of Web applications and because beginners can produce graphical programs with it.

However Schonberg and Dewar said that at New York University Java programming courses were about as useful as a course of leeches when it came to preparing students.

The skill was even less useful when it came to doing the hard stuff.

Students found it hard to write programs that did not have a graphic interface and were insensitive as a paralysed lump of concrete when it came to feeling for the relationship between the source program and what the hardware would actually do.

This made it impossible to teach C, or any other letter of the alphabet, to the kids.

Schonberg and Dewar believe that the kids of today are not interested in seeing the irresistible beauty of some good code. Instead they rummage around in drawers looking for gadgets.

You can read the full spiel here. µ

Share this:

Comments
where is the real problem?

Seems like he is (or should be) criticizing the way the language is taught more then the language it self.

posted by : lunarHonour, 08 January 2008 Complain about this comment
Ah... The Sound of Whining

I was reading the article when I came to the subsection titled "Why Ada Matters" and stopped short. Most of the Ada concurrency features have been integrated into Java SE since 1.5.0 so their whole argument seemed... strained.

Then I noticed the byline.

"AdaCore Inc."

Talk about promoting a dead language! Green was a fabulously pure language based on Tony Hoare's CSP but the US DoD completely trashed that elegance with their "simplification requirements." Ada's only educational value is to show why committees should not develop programming languages.

posted by : Rob Menke, 08 January 2008 Complain about this comment
Poor teachers!

LOL -- what a pair of jokers :-)

There's nothing that can be done in C++ that cannot be done just as well in Java.

Java has proven itself endlessly in mission-critical applications.

It occurs to me that it is the professors who are failing the students, not the programming language.

I developed in assembler in the 1980s, C++ in the 1990s, Java/XML since 1998 and Ruby now. (C is for those who cannot cut assembler and, like assembler, it belongs to the past).

Times change: evolve or die. Students should be taught how to deal with that!


posted by : Jeff Lawson, 08 January 2008 Complain about this comment
OOooh watch out, you'll offend them...

Careful lest the army of script kiddies land on you from a great height.

Myself and a couple of other crusty old greybeards at work (I actually have a clean shave and am un-grey) discussed this a long time ago. It seels that there are a lot of kids coming out of school who can do little more than manipulate tools or assemble programs from existing objects scripting the events they wish to happen. Such "tool jockeys" and "script kiddies" are utterly unable to comprehend the business logic behind business processes, and could no more tell you what the various components of their assemblies are doing, than they could tell you what's on the mind of a pod of playful dolphins.

The sooner we make kids learn to program in FORTRAN again, or perhaps force a semester of assembly language on them, the better.

posted by : Gordon, 08 January 2008 Complain about this comment
So much more so Vistual Studio

If Java has these issues then C#, VB and other .NET coding is worse. Visual Studio hide the real machine from the developer.

posted by : Kym, 08 January 2008 Complain about this comment
Teaching needs to be revamped.

As a TA at NYU CS, I have to say -- hey, NYU is mentioned on the inq? That said, I have to completely agree with Prof. Dewar and Schonberg.

I had the background of taking classes in C/C++ and Lisp and mathematics, which they mention, which has served me well. But here and now, most of the students use only Java. I have graded students who were unaware of how to compile and run in except for Eclipse on Windows. They have never touched a command line. Even if it does compile, the code is often horrible -- 10 if statements matching each number instead of a string comparison, for example We also get some terrible C code, if the student somehow decides to use C instead of Java, and no one is around to teach them how.

This is not true of all students. Some students are quite talented at software engineering. I think most of them learned how to code prior to arriving here, though. There seems to be (or there was) one class in particular that actually teaches good coding style and practices here; but it is not required. Perhaps making it required would be a good start.

Java can't be the root of all evil -- some of the good code I get is in Java -- but students certainly need a better understanding of what the hardware is doing.

posted by : C, 09 January 2008 Complain about this comment
Hmm..

Definitely, we should all go back to learning Assembly, Fortran and Cobol. Some professors should have resigned long time ago! :\

posted by : Pavel, 09 January 2008 Complain about this comment
Java clumsy

I recently had a look at doing some scripting of OpenOffice. Most of the examples are in Java, and boy are they clumsy. You spend much of your time getting back an object of one type,and converting it to a different type using a "queryInterface" call. I was looking at Python, and that could do the same thing in half the code, and do it much more simply.

Quite ironic, considering both Java and OpenOffice are Sun's own projects.

posted by : Lawrence D'Oliveiro, 09 January 2008 Complain about this comment
Now, what does Computer Science have in common with theology?

Of course the authors of this article give themselves away with this disclosure:

"As founders of a company that specializes in Ada programming tools for mission-critical systems.."

Ada. Of all the programming languages, the one most deserving of the term "Mongolian Clusterf*ck". A jack of all trades, designed by committee, bastard stepchild of that language that self respecting professors thought was a great teaching language: Pascal.

Yes, the mathematical roots of Computer Science are very important. They should be taught, but to specialized students. Rob and Ed need to get a grip on the real world. The fact is that M$ popularized its programming tools by making them easy for the average sod to use. Mind you, they also created a generation of really bad code.

And that's what Java fixes. Garbage collection. No pointer arithmetic. Proper handling of exceptions. Runtime checking. lets not forget that most of the security bugs in the real world code are buffer overflows and why is this? C programming and lazy programmers.

The authors even have the gall to promote C++ to students. Jeez. C++ the poster child of how not to implement object oriented programming. A nasty, inelegant, nest of backwards compatibility hacks with no support for garbage collection at language level.

I know lots of C++ and Ada programmers. They whine to me over their memory leaks and then go glassy eyed when I talk about how its fixed in Java.

C has its place provided its in the hands of those who really know what they are doing. C++ should be erased from the space time continuum. Ada has its uses. So too does Lisp. Heck, functional programming does solve some limited problems very well, but that's no reason to inflict it anyone but willing volunteers.

As for the reference to "real programmers", I give you:

http://www.pbm.com/~lindahl/real.programmers.html

posted by : happy herbivore, 09 January 2008 Complain about this comment
They have a point....

I had my hard time teaching a (very bright, btw) java-guy how to program in (good?) old CoBOL.... not for the absurd syntax, just because of the "granularity" of the code. 

There's no such thing as a free lunch in low-level languages.... which may as well be a nice lesson to learn (at least. it teaches you to appreciate a free lunch when you get one!!).

posted by : zio, 09 January 2008 Complain about this comment
This is knew?

This isn't knew. This article http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html by Joel derides the teaching of Java.

I'm not attacking Java as I am a Java developer at an IB. But I learned C at University followed by C++, Java wasn't even at 1.1 when I left Uni. Now looking at that Uni, it feels sad to think they can't teach C there as it might be too difficult.

posted by : Gareth Lewis, 09 January 2008 Complain about this comment
It was predicted!

http://steve-yegge.blogspot.com/2007/09/steveys-tech-news-issue-1.html


Sun Microsystems Demands University Study Retraction

The University of Washington, apparently hoping to capitalize on the recent hype around their controversial study on Baby Einstein™-style videos, followed up yesterday with another, similar study. In the new study, researchers found that Java programmers understand an average of seven fewer Computer Science concepts per hour spent with Java each day compared to similar programmers using other languages. Sun calls the study "seriously flawed", citing the fact that you can combine the names of Gang of Four Design Patterns to form new Computer Science concepts that all Java programmers understand, such as the ObserverFactoryBridge, the BridgeFactoryObserver, and the well-known FactoryObserverBridgeChainOfCommandSingletonProxy, beloved of Java programmers everywhere. Java experts at Sun say they're not sure how many combinations there are of the twenty-three pattern names, but there are "definitely a lot of them."

(note the article is humor)

posted by : const, 09 January 2008 Complain about this comment
CCubed for AI Beta Vision?

Rhetorical Question for the XSSXXXXPerienced ZeroDay Fan?

"Such "tool jockeys" and "script kiddies" are utterly unable to comprehend the business logic behind business processes, and could no more tell you what the various components of their assemblies are doing, than they could tell you what's on the mind of a pod of playful dolphins. "....... but Java Dons can lead them in those Applications which Process for Business, Gordon. The "Flexibility" of Java allows IT an unrivalled Stealth given that it is Parallels Ahead for less Forthright Script/Code/Language to Follow.

"Poor teachers!" ... posted by : Jeff Lawson, 08 January 2008 ....... with a hidden agenda for the retention of the Status Quo rather than ITs XXXXPansion and Enlightening Enrichment for Future Youth, Jeff? And that was a perceptive post which I wouldn't disagree with, Jeff.

"Ada. Of all the programming languages, the one most deserving of the term "Mongolian Clusterf*ck". A jack of all trades, designed by committee, bastard stepchild of that language that self respecting professors thought was a great teaching language: Pascal." ...... And, of course, language has dialects which gives IT even more colour/scope. ........ Spookily enough, there is another relevent bastard reference in an quITe alien comment here .... http://www.theregister.co.uk/2008/01/09/mbr_rootkit/ 

posted by : amanfromMars, 09 January 2008 Complain about this comment
Advertisement
Subscribe to the INQ Newsletter
Sign-up for the INQBot weekly newsletter
Click here to sign up Existing user
Advertisement
INQ Poll

Browsers

Who will win the next round of browser wars?