Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Whatever Happened To Programming? 623

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.
This discussion has been archived. No new comments can be posted.

Whatever Happened To Programming?

Comments Filter:
  • Frameworks (Score:3, Informative)

    by Nerdfest ( 867930 ) on Sunday March 07, 2010 @12:31AM (#31386480)
    There's still lots of interesting programming going on, and lots of interesting new languages. The ''Magic Incantations' are the same frameworks you used to have to write yourself, and even then you generally only did it once. It's gotten a lot easier to share the common solutions now, and we're free to do the real work.
  • Re:Frameworks (Score:5, Informative)

    by tomhudson ( 43916 ) <[moc.nosduh-arab ... [nosduh.arabrab]> on Sunday March 07, 2010 @01:03AM (#31386658) Journal
    It isn't even a question of faster ... a lot of those "glued-together solutions" don't scale and are impossible to debug and maintain.
  • Misleading summary. (Score:5, Informative)

    by BitterOak ( 537666 ) on Sunday March 07, 2010 @01:06AM (#31386668)
    Warning! Before you read the linked article or its followup too deeply, be aware they are not by Donald Knuth. Instead, the author has a brief quote from Donald Knuth in his first blog, and the other link is a followup story. So, "the author" referenced in the Slashdot summary is NOT Donald Knuth. I made the mistake of reading the followup article first, and then when I read the original, I found a brief quote from Donald Knuth which tipped me off to the fact that the author was not Donald Knuth, and as far as I can tell, Donald Knuth doesn't even know this author.
  • by crazycheetah ( 1416001 ) on Sunday March 07, 2010 @01:17AM (#31386726)

    I wouldn't separate that too much. Some of us exist that can do the "hard stuff" and might even find and fix a bug in some of the libraries from time to time. However, when we're just making an app that works and fits in with the environment, a lot of the "hard stuff" has been done and is likely to be less buggy and more consistent with the environment than redoing the whole thing ourselves. Then, if it's open source, we can just fix bugs we find in the "hard stuff" and focus more on what we're actually doing.

    Hell, things like basic sockets and other things that are fairly easy, really--every once in a while I forget to back that up or something stupid and instead of just doing it all from memory and by hand, I just copy and paste it off the internet, then rework it to my liking (by this time, I know the commands, but copy and paste is just faster). Of course, some times I like to do things that have already been done, only try to do it in a new way, just as an exercise (I'm down to programming as a hobby at this point).

    I wouldn't be too harsh on copy and pasting, though. It can be a great learning exercise if you peel it apart and actually understand exactly what is going on and the different ways you can alter it. It's also a great way to get to know an open source library and be able to fix any bugs you find, or even add features to it, if that's your fancy. That's generally how I've done anything in that regard, to be honest.

  • by binarylarry ( 1338699 ) on Sunday March 07, 2010 @01:23AM (#31386754)

    That would be Pablo Picasso.

  • by Sarusa ( 104047 ) on Sunday March 07, 2010 @01:27AM (#31386774)

    I've dealt with Chinese and Indian outsourced code before - it's rather interesting. They take fragments of code they find via Google, paste them together, and do the bare minimum of editing to make it compile and say 'okay, we've fulfilled our contract, ship it.' This is what suffices for 'programming'.

    On the other hand, I am still solving interesting problems with real programming at my current company, so I still think it's a lot of fun. The key point is that the programming is part of the /problem solving/. Code pigs have no concept of problem solving, just making the program work (by which they mean compile, or matching the sample screens). Engineers are solving problems, and the program is just a part of that. At my present job they really don't care what language I do things in as long as the job gets done, because solving the problem in the most practical manner is the most important thing. In practice this means I use C for things that actually do require high performance and minimal memory usage (this is still an issue in embedded programming), Python for everything else that I can, and domain specific languages for things like servo controllers or FGPAs.

    The 'pasting not quite compatible libraries together' approach is a Java/COBOL thing of minimizing the damage incompetent consultants can do. I've seen it time and time again - once an Enterprisey Java programmer encounters sufficient complexity, a hormone kicks in and they create a framework to simplify this complexity. It does so, initially, but eventually ends up being 2-10x as complex as the original problem they were trying to simplify. But they see this as a net positive because they have a new acronym to put on their resume.

    So basically, like every single damn post I've seen on here lamenting the state of programming, and repeating every damn comment I've made again and again, it boils down to 'solve problems as efficiently as you can'. Absolute rules, in programming or religion, are for people who are too simple to handle complexity. This is the difference between an engineer and a code pig.

  • Re:Frameworks (Score:3, Informative)

    by EsbenMoseHansen ( 731150 ) on Sunday March 07, 2010 @04:14AM (#31387558) Homepage

    Tragic story :) For C++ (also Java these days) knowing and researching what libraries are available is more than half the battle. I was readíng the list of what he was doing, and Qt provides at least he beginning of everything there in the language he wanted (C++), excepting the garbage collection (which makes little sense in GUI programming in general and especially none in Qt). That that was what they ended up with was even more funny in a tragic kind of way.

  • by tonywestonuk ( 261622 ) on Sunday March 07, 2010 @04:39AM (#31387642)

    ...its called Java. You may have heard of it! - A Java Webstart program can run on anywhere, with vastly less coding for platform differences than, say, coding a website to run perfectly between different browsers, and has everything you want, right now.

        However, the slashdot crowd (and others of similar ilk) have already condemned, and dismissed the Java GUI for not been quite as fast, or looking exactly like a native app....even though these differences nowadays are very slight. Java has been banished from the desktop.

    Now Microsoft are coming along with Silverlight, which I guess will do a similar thing (though, will probably work like crap on non M$ platforms), and in 10 years, the world will rejoice how Silverlight has brought us out of the dark Web based internet dark ages, tying us all to windows platform for ever more...

    Im getting too old for this, hence my cynicism.

  • Re:As a physicist, (Score:3, Informative)

    by physburn ( 1095481 ) on Sunday March 07, 2010 @05:03AM (#31387730) Homepage Journal
    I'm a physicists too, but Ockham's Razor hasn't been proved, from Wikipedia:

    ---

    In science, Occam’s razor is used as a heuristic (rule of thumb) to guide scientists in the development of theoretical models rather than as an arbiter between published models.[4][5] In the scientific method, Occam's razor is not considered an irrefutable principle of logic, and certainly not a scientific result.[6][7][8][9]

    ---

    I've actually had a good look and Ockham's Razor from the point of view of information theory. See, my blog [blogspot.com]. The trouble stopping the Razor been robust, is finding a fair language to express the scientific theory in a minimally small way.

  • by slashbart ( 316113 ) on Sunday March 07, 2010 @10:22AM (#31389494) Homepage
    Hello World.

    I've spent most of my career on embedded projects, and I'm still doing real programming, from bit banging an I2C or Dallas onewire bus, writing a custom assembly routine to provide a uC-OS-II task switch on an ethernet chip interrupt, or interfacing with some higher level Tcl stuff. To get the whole thing working mix in some shell, awk, python xslt, stir well, and get space qualified software. Oh and when all that starts to get boring, throw in some FPGA programming for a completely new way of doing things. I love my jobs!
    Really, I think embedded software is often more interesting than most web-, gui- or server apps. The disadvantage is that you pretty much need an electronics degree (which I do), to be able to do it effectively.
    Last but not least, it often pays pretty good, and the quality requirements are high, which means that there is time allocated to make something good. Google for 'Declic' on linuxjournal.com if you want to see what I'm talking about.

  • by DCheesi ( 150068 ) on Sunday March 07, 2010 @12:47PM (#31390968) Homepage

    In embedded programming there's still plenty of opportunity for ground-up design. Eg. writing a new driver for custom or unsupported hardware, creating custom applications to do whatever unique thing your widget does, etc.

    Yes, you tend to get into framework-hell on the GUI side, and occasionally in other areas as well. But even then I get a sense of pride knowing that I made these things work on a platform they were never designed for.

They are relatively good but absolutely terrible. -- Alan Kay, commenting on Apollos

Working...