Slashdot Mirror


Whatever Happened To Programming?

Mirk writes "In a recent interview, Don Knuth wrote: 'The way a lot of programming goes today isn't any fun because it's just plugging in magic incantations — combine somebody else's software and start it up.' The Reinvigorated Programmer laments how much of our 'programming' time is spent pasting not-quite-compatible libraries together and patching around the edges." This 3-day-old article has sparked lively discussions at Reddit and at Hacker News, and the author has responded with a followup and summation.

6 of 623 comments (clear)

  1. Next Next Finish Programming by theodp · · Score: 4, Interesting

    THE DUMBING-DOWN OF PROGRAMMING (1998): "My programming tools were full of wizards. Little dialog boxes waiting for me to click "Next" and "Next" and "Finish."...Dumbing-down is trickling down. Not content with infantilizing the end user, the purveyors of point-and-click seem determined to infantilize the programmer as well."

    1. Re:Next Next Finish Programming by Tablizer · · Score: 5, Interesting

      It's not so much "dumbing down", but rather becoming a swamp navigator instead of an engineer. You can't just know principles, you have to also know the swamp.

      More time is spent trying to figure out how to use and work around limitations of existing libraries and tools and less about designing such tools from scratch.

      It can be roughly compared to what's going on in the automotive repair industry. You used to see all the parts involved and how they interact. Now a computer controls servos and if things don't work, you have to use Sherlock Holmes-like abilities to figure what's going on in the sealed dark-gray-box provided by Ford or Nissan that controls most of it. It's now about studying the relationship between the controller and the parts rather than "fixing the parts" directly.

      It's a shift away from being The Wright Brothers toward being Sherlock Holmes: doing your best with limited clues by poking and prodding and digging instead of just making it "right". Instead of being a constructor, now we're deconstructors more or less.
         

  2. Re:Idiot. Seriously. by dcollins · · Score: 4, Interesting

    "I think a better analogy would be to say that today's programmers are more like a Cargo Cult."

    Responses to the recent MS-random-browser thread ("the faulty shuffle is close enough", "this guy's being pedantic", "knowing algorithms is a bad use of company time") are pretty good evidence of that.

    http://developers.slashdot.org/article.pl?sid=10/02/28/1837223

    --
    We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  3. Docs by afabbro · · Score: 4, Interesting

    From the article: "...it’s a tedious exercise in impedance-matching, requiring lots of time spent grubbing around in poorly-written manuals that tell you everything the code already told you (because it was generated with JavaDoc or Rdoc or whatever), and none of the high-level stuff that you actually need to be told."

    Ah, so the real problem is poor documentation.

    I work all day in a programming language written by one of the biggest software companies in the world. The documentation is complete, detailed, and accurate. For large things, there's an accompanying "concepts" doc. While I have (very rarely) run into something that needs clarification in some sort of corner case, I've never come across any part of their language, libraries, or objects that wasn't thoroughly documented, with examples.

    On the other hand, I don't think I've ever come across an open source product that had barest minimum of documentation. What does exist is typically out of date (and observations of such are met with "read the changelog!" - lame). There's certainly nothing that explains the major concepts in the code - at best, there's some guide to functions or objects, and usually that only because it can be autogenerated. Sometimes there are examples - though more typically, a few mini examples are the only documentation.

    Documentation writing sucks. Programmers don't enjoy it. It's highly amusing to me that the two areas that are the least fun for programmers - GUI design and documentation - are the two worst parts of open source projects.

    BTW, in the 80s, programmers were excited about OOP because it promised rich object libraries. Someone would create objects to do X and we'd never have to code X again - no one, ever! And now everyone complains programming is just stringing together libraries.

    --
    Advice: on VPS providers
  4. Re:As a writer of crappy code.. by fuliginous · · Score: 4, Interesting

    I agree from a different view that goes like this. Good programmers/software engineers are expensive so companies like to pay cheaper people. To enable use of cheaper people tools and processes are introduced.

    One such tool is languages that have buckets of libraries or core tools that the new people merely have to extend or tweak.

    Knuth is lucky that most things he needed didn't exist then so using libraries wasn't an option. If everything he needed already existed he'd have picked a different area to work in.

  5. Re:Car analogy! by DaveV1.0 · · Score: 4, Interesting

    Speaking as an ex-over-the-road truck driver, it is a bad analogy because truckers do care about what they are carrying. They have to because they have to comply with different weight and bridge laws in each state. Truckers need to know if the load could shift, leak, etc.

    And, no trucker wants a load that is not what the manifest says. Makes delivery difficult and if the load is inspected and the contents of the trailer does not match the contents of the bill of lading then the driver might have be in serious trouble.

    Shippers may require the route not go over a certain altitude, through certain areas (New York City for one), or require a specific delivery time frame ("You have to be there on Wednesday between 6AM and 9AM").

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.