• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Surprise, Surprise: Java Coders Don’t Know Jack About “Real” Programming

    January 14, 2008 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

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags: Tags: mtfh_rc, Volume 17, Number 2 -- January 14, 2008

    Sponsored by
    ARCAD Software

    Embrace VS Code for IBM i Development

    The IBM i development landscape is evolving with modern tools that enhance efficiency and collaboration. Ready to make the move to VS Code for IBM i?

    Join us for this webinar where we’ll showcase how VS Code can serve as a powerful editor for native IBM i code and explore the essential extensions that make it possible.

    In this session, you’ll discover:

    • How ARCAD’s integration with VS Code provides deep metadata insights, allowing developers to assess the impact of their changes upfront.
    • The role of Git in enabling seamless collaboration between developers using tools like SEU, RDi, and VS Code.
    • Powerful extensions for code quality, security, impact analysis, smart build, and automated RPG conversion to Free Form.
    • How non-IBM i developers can now contribute to IBM i projects without prior knowledge of its specifics, while ensuring full control over their changes.

    The future of IBM i development is here. Let ARCAD be your guide!

    Watch Now

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Redefining Security the New Goal of Former i5/OS Security Architect ACOM Expands Content Manager with New Search, Blackberry Options

    Leave a Reply Cancel reply

TFH Volume: 17 Issue: 2

This Issue Sponsored By

    Table of Contents

    • 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
    • Rocket Software Buys the Assets of Arkivio
    • Server Reseller OHC Expands into Services, Softchoice Expands into the U.S.
    • Which Geographies Use the Most Juice for Servers?
    • Lawson Grows Sales by 18 Percent in Fiscal Q2
    • Surprise, Surprise: Java Coders Don’t Know Jack About “Real” Programming

    Content archive

    • The Four Hundred
    • Four Hundred Stuff
    • Four Hundred Guru

    Recent Posts

    • Liam Allan Shares What’s Coming Next With Code For IBM i
    • From Stable To Scalable: Visual LANSA 16 Powers IBM i Growth – Launching July 8
    • VS Code Will Be The Heart Of The Modern IBM i Platform
    • The AS/400: A 37-Year-Old Dog That Loves To Learn New Tricks
    • IBM i PTF Guide, Volume 27, Number 25
    • Meet The Next Gen Of IBMers Helping To Build IBM i
    • Looks Like IBM Is Building A Linux-Like PASE For IBM i After All
    • Will Independent IBM i Clouds Survive PowerVS?
    • Now, IBM Is Jacking Up Hardware Maintenance Prices
    • IBM i PTF Guide, Volume 27, Number 24

    Subscribe

    To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

    Pages

    • About Us
    • Contact
    • Contributors
    • Four Hundred Monitor
    • IBM i PTF Guide
    • Media Kit
    • Subscribe

    Search

    Copyright © 2025 IT Jungle