NYU Professors Attack Java as Damaging to Students

According to a new journal article by two New York University professors, Java programming is ruining computer science students at NYU and elsewhere.

The article in this month's Journal of Defense Software Engineering by Drs. Robert B. K. Dewar and Edmond Schonberg alleges that CS students aren't being taught solid programming languages and that it is leaving them unprepared for the software industry. They specifically attack Java as leaving the students unprepared, and describe them as unable to write programs without a GUI, having little understanding of how their programs and hardware would interact, and completely lacking an understanding of the aspects of important programming languages including C, C++, and others.

The pair seem to be inviting a discussion on the topic, and for our money, we bet they get a lively one.

Read more.

______________________

Justin Ryan is a Contributing Editor for Linux Journal.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I'll take it one step farther

MrFiat's picture

I whole-heartedly agree! A thorough understanding of the hardware circuitry that software (written in any language) is supposed to interact with is absolutely necessary if the final product as a whole is to work, bug-free. This is especially true of control programs written for imbedded processors and we all know the direction that technology is taking. Machine language programming, by necessity, gets the programmer "up-close and personal" with both the software and hardware aspects of the task at hand. With it, a competent programmer can generate much more efficient code so often necessary in low memory, inexpensive processors. Higher level programming languages (Even C and the like), while often convenient, take the programmer one more step away from the grass roots basics, and one more step away from completely having to understand exactly what's going on at the hardware level. Java is even worse in that respect.
But then again, dinosaurs, like myself, do tend to think like dinosaurs.....

absolutely true

Zoltan Kis's picture

Within certain context, I couldn't agree more with this. To be fair, there is nothing wrong in teaching Java beside other languages, the problem is putting too much emphasis on it nowadays. Language is only a tool, and one should know a large selection of tools when graduating, so that (s)he can select the right tool for the right job later. It would be good to avoid producing hammer-engineers, screwdriver-engineers etc, as they tend to see all problems as nails and screws. I happen to know good Java programmers as well, but they are rare, and usually they are proficient in other languages as well.

For the same reason, I am a bit mad even with the design pattern book of the gang of four. Instead of elevating otherwise bad programmers to mediocre level, it became a parlance, and hence created a manageable, but limited universe in which everyone has to play mediocre. Nearly all Java projects fall into this category. What I usually see is that people apply patterns without understanding the problem, but since they think they have a universal tool, they go and use patterns blindly, and not only on a conceptual level. There are some exceptions, but this is the mainstream, especially in those places where management is too strong on this. This level of programming and management is acceptable for the CMMI-crazy mediocre software houses, but ridiculous when you compare it with the alternative of truly creative folks (which yes, could use even Java if they feel the need :).

If universities need an educative platform, which is real enough, complex enough, containing pretty good solutions to a large number of real problems, a good choice would be the Linux kernel :). IMHO no one should be able to graduate as a CS engineer without knowing the solutions applied in the kernel code :). Take those as patterns, if wished so ;). One could add more criteria of course, but this should be the minimum.

Linux kernel in universities

Tweenk's picture

Come to Poland. 2nd year CS students at the Warsaw University have a mandatory subject named Operating Systems, where everyone needs to write a complete, useful module for the Linux kernel (i.e. a cryptographic module with a /dev interface). So you can't graduate without having at least some familiarity with Linux code. Additionally, nearly all computers are running Linux, so you can't get away without knowing how to use it (especially the command line - programming subjects are taught without an IDE, and generally no proprietary programs are used in the courses).

Incidentally, this university is consistently world-class in both ACM Collegiate Programming Contest and Google's Top Coder (right now it's first in both). You could argue that there is no connection between using Linux and programming excellence, but who knows :)

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState