tlb
Volume 5, Number 2 -- January 15, 2008

Surprise, Surprise: Java Coders Don't Know Jack About "Real" Programming

Published: January 15, 2008

by Timothy Prickett Morgan

This one reminds me of the conversation I had with my father over standard versus automatic transmissions in cars when I was a lazy teenager and there was a cranky clutch that took way too much of a delicate touch to work correctly. Two professors of computer science at New York University who are also the top brass at a company specializing in the Ada programming language, have written a paper that explains why Java is a terrible first language for newbie coders to learn.

In a paper entitled Computer Science Education: Where Are the Software Engineers of Tomorrow?, Robert Dewar, president of AdaCore and an emeritus professor at NYU who has been involved in creating the Ada programming language since 1980 and who created the open source GNU Ada Translator, and Edmond Schonberg, also an emeritus professor at NYU and vice president at AdaCore, explain why they are dismayed by the lack of programming and underlying mathematical skills in computer science programs today. (The paper was published in CrossTalk, the Journal of Defense Software Engineering, and you can read it here.)

One of the more interesting parts of the paper is where the electrical engineering students who were taught C++ first turned out to be better programmers than the computer science students who learned Java first; this was reported anecdotally from a professor at Texas A&M University, which switched the computer science program so it starts with C++ first rather than Java.

"Let us propose the following principle: The irresistible beauty of programming consists in the reduction of complex formal processes to a very small set of primitive operations," the paper by Dewar and Schonberg says in explaining the pitfall of the Java-first approach to teaching programming. "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. How it does it is not interesting! The result is a student who knows how to put a simple program together, but does not know how to program."

Dewar and Schonberg say that at NYU, as at other schools, Java is the most widely used programming language for beginners in computer science classes, specifically because of its popularity in the commercial world and because of its relative ease of programming. But, say the professors, students at NYU had no idea what to do if they didn't have a graphical user interface and, more importantly, had no idea what the relationship is between the source code they are creating and its hardware it ultimately runs on. If you don't know these things, you are not studying computer science, and you cannot make things run better.

What the two go on to say is that it is really important for newbie programmers to evolve from lower-level languages, which are closer to the iron and therefore do a good job of explaining to students the features of processors and their memory subsystems and how to take advantage of them. So you start with C, where you can see the relationships between the code you write and the hardware, and equally importantly, do tweaks to boost performance. Then you move up through C++, which adds object oriented programming techniques, and Lisp, which is arguably the coolest language ever invented and which is the second-oldest high-level programming language, created in 1958--a year before COBOL and four years after Fortran. (Many of the concepts of modern programming were pioneered in Lisp--list processing, recursion, incremental recompilation, and the well known if-then-else construction that seems so obvious now.) "Seeing a complete Lisp interpreter written in Lisp is an intellectual revelation that all computer scientists should experience," Dewar and Schonberg say in the paper. (Guess you have to do it to see what they mean.) The two also say that Java is an important language, too, even on its technical merits, and of course, they finally add that Ada, a programming language that is used in embedded and real-time applications--where the professors have their expertise and have made their livings for decades--is equally important.

"Ada is the language of software engineering par excellence," the professors write in the article. "Even when it is not the language of instruction in programming courses, it is the language chosen to teach courses in software engineering. This is because the notions of strong typing, encapsulation, information hiding, concurrency, generic programming, inheritance, and so on, are embodied in specific features of the language. From our experience and that of our customers, we can say that a real programmer writes Ada in any language."




                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
ROARING PENGUIN

CanIt-PRO Anti-Spam Software for Linux/UNIX

· Flexible spam and virus blocking
· Unparalleled end-user control
· Access to source code? Of course!

Stop spam at the mail server on YOUR terms with CanIt-PRO from Roaring Penguin Software. Combines the power of MIMEDefang and SpamAssassin™ to provide unparalled end-user control and an easy-to-use web interface.

Download free evaluation software at
www.roaringpenguin.com


Editor: Timothy Prickett Morgan
Contributing Editors: Dan Burger, Joe Hertvik, Kevin Vandever,
Shannon O'Donnell, Victor Rozek, Hesh Wiener, Alex Woodie
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

COMMON:  Join us at the annual 2008 conference, March 30 - April 3, in Nashville, Tennessee
Vibrant Technologies:  Quality Used Servers, Storage & Networking Hardware at up to 80% off new
Bytware:  The power of McAfee with award-winning StandGuard Anti-Virus for Linux


 

IT Jungle Store Top Book Picks

Getting Started with PHP for i5/OS: List Price, $59.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket Developers' Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
iSeries Express Web Implementer's Guide: List Price, $59.00
Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
WebFacing Application Design and Development Guide: List Price, $55.00
Can the AS/400 Survive IBM?: List Price, $49.00
The All-Everything Machine: List Price, $29.95
Chip Wars: List Price, $29.95


 
The Four Hundred
The Official 2008 TPM System i Wish List

Bracing for i5/OS V6R1 and the Winding Down of V5

IBM Gets Clustered Storage and EMC Founder with XIV Buy

As I See It: Weighty Matters

SOA Remains Hard to Define, but Projects on the Rise

Four Hundred Stuff
Vision Seeks to Simplify HA Options with 'Hybrid' Solutions

PowerTech i5/OS Security Conference Open to All

CCSS Adds System i Battery Monitoring to QSystem Monitor

Quadrant's Formtastic Keeps Closer Watch on Print Jobs

Help/Systems Buys International Distributor

Big Iron
A New Year, A New IBM Systems and Technology Group

Top Mainframe Stories From Around the Web

Chats, Webinars, Seminars, Shows, and Other Happenings

Four Hundred Guru
Scrubbing Your Web Data with Elbow Grease and AJAX

Odds and Ends

Admin Alert: Making Educated Guesses on CPU Utilization

System i PTF Guide
January 5, 2008: Volume 10, Number 1

December 29, 2007: Volume 9, Number 52

December 22, 2007: Volume 9, Number 51

December 15, 2007: Volume 9, Number 50

December 8, 2007: Volume 9, Number 49

December 1, 2007: Volume 9, Number 48

The Windows Observer
Remembering Microsoft's 2007, and Looking Forward to 2008

Gates Predicts Computing Advances in Final CES Keynote

Servers Get Their First Power and Performance Benchmark

Worm Threat High with Security Holes Patched by Microsoft

Microsoft Offers $1.2 Billion for Enterprise Search Company

The Unix Guardian
Apple Goes Quad Core in Xserves and Mac Pros

A New Year, A New IBM Systems and Technology Group

Servers Get Their First Power and Performance Benchmark

Mad Dog 21/21: Motherboarding

IDC 2008: It's Post Disruption, the Aftermath of Webification

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

THIS ISSUE SPONSORED BY:

Centrify
Guild Companies
IT Security
Roaring Penguin
Arkeia


Printer Friendly Version


TABLE OF CONTENTS
HP Revamps ProLiant Rack and Tower Servers with New X64 Chips

Xandros Revs Scalix Messaging with 11.3 Release

IBM Gets Clustered Storage and EMC Founder with XIV Buy

As I See It: Weighty Matters

IBM Gives Wall Street a Present: More Profits Than Expected

But Wait, There's More:

Intel Launches White Box Blades as New York State Probes . . . X64 Workstations Basically Kill RISC/Unix Alternatives . . . Virtual Iron Teams Up with FalconStor for Full Virtualization . . . Surprise, Surprise: Java Coders Don't Know Jack About "Real" Programming . . . Server Reseller OHC Expands into Services, Softchoice Expands into the U.S. . . .

The Linux Beacon

BACK ISSUES





 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement