Why is programming repetitive ? Was Turing wrong ?

December 13, 2008 – 11:48 pm

Instruction tables will have to be made up by mathematicians with computing experience and perhaps a certain puzzle-solving ability. There need be no real danger of it ever becoming a drudge, for any processes that are quite mechanical may be turned over to the machine itself.

Alan Turing

In essence Turing was saying that programming should never be boring or repetitive. Because you should always be able to program any repetition.

I don’t know about you but this is not the feeling I got when programming in c or java. In fact this is not a feeling I always get when programming in python !

Was Turing just plain wrong ? Or are we just fools ? Fools that use languages too complex for our own good. Languages so complex that they become black boxes that you dare not modify or extend in order to forget about repetitive programming.

Maybe we went in the wrong direction when choosing C over lisp. I have a feeling that this quote is not that wrong when programming in lisp.

I wonder what Turing would have done if he had lived to an old age. I dare hope that he would have made his words come true.

PS: I like Turing word for a programmer. I want to put “mathematician with computing experience and perhaps a certain puzzle-solving ability” on my resume.

  1. 10 Responses to “Why is programming repetitive ? Was Turing wrong ?”

  2. I think you’ve taken Turing’s quote out of context. Turing described other types of machines 2 years after this quote - but he had been thinking about them since 1943.

    The universal Turing machine, Turing’s unorganized machines, and a plethora of other of Turing’s wonders describe this in more detail.

    We do have this, in basic forms. Genetic algorithms, recursion (recursive programming), neural nets and many bits and pieces of AI. We’re on the cusp of this change. Our ability to achieve the actual Turing machine (programatically and in hardware) will be the key to this.

    I recommend Turing’s works between 1945 and his death, they can be found in the “Collections of AM Turing”

    By Derek on Dec 14, 2008

  3. From a functional-programming standpoint this can be the case. Objects also allow reuse. The fact is there is probably a collection of libraries to facilitate most tasks.

    How many times have you programmed something that you’ve then discovered is done far more efficiently by an already existing library or API?

    By firextol on Dec 14, 2008

  4. I think there are a few different assumptions Turing was making when making that statement. Firstly, it should be said that a lot of drudgery _is_ taken out of programming: i.e. you don’t have to worry about which assembly instructions are used, you don’t have to worry about which processor, you don’t have to worry about whether you need to ask for permission to run from the other processes running on the cpu. Its easy to forget just how complex modern computers are and how much goes on under the hood.

    That being said, programmings still a bitch. I think Turing, like many other Computer Scientists of old, believed that Artificial Intelligence was just a matter of programming some basic rules, and letting the computer bootstrap its way into intelligence. AI turned out to be a lot harder than people had anticipated. Modern programming languages are a kind of bridge between the machines idiot savant way of looking at the world and our “rule of thumb”/heuristic way of looking at the world. In order for programming languages to become easier, we essentially need better natural language processing and without better AI, this becomes problematic.

    So, I’m hopeful. Bigger data sets available through the internets means AI now has a large enough input pool to learn something useful. Better AI bridges the gulf between the idiot savant cpu and us, which means better programming languages….

    oh, and I know lisp has quite a following, but I don’t think even lisp would save you. Notice how lisp’s usability has been neatly sectioned off to academia (though it has emacs in its favor). I think the issue is a deeper one, namely that computers just aren’t that smart. Looking back and saying “only if”, be it for lisp, java, or I think glosses over this…

    By nullbot on Dec 14, 2008

  5. Programmers were mathematicians at the time, that wasn’t just an inflated title. The domain of problems they were solving were mathematical. Most programming today is solving non-mathematical domains. The world is a lot messier than the mathematics, so programming in such a messy world can be more drudgery because it is translating a bunch of simple one-off rules from the real world into a program rather than several computationally expensive operations.

    The other big piece that adds to the drudgery of software development today is the infrastructure required to link together large programs and systems together. When writing a program that deals with a single problem in a limited situation, virtually all of the code goes to solving the problem at hand. As programs and systems scale up, more and more code and complexity is dedicated to managing the software architecture itself.

    By jackalnom on Dec 14, 2008

  6. It seems to me the quote could fit your java/python/whatever problem. You’re free to program without tools but we have been delegating a lot of the “drudge” to the machine already. I’m thinking right now of OR mappers, model driven architecture or more simply auto-completion and the myriad of features of any decent code editor has.

    By mrboyd on Dec 14, 2008

  7. The drudgery is not in the programming but in the conversation of human requirements in to code.
    Take the millions of database frontend applications that have been written, the database is already written, the GUI toolkit is already written but the drudgery of creating a layout of GUI components for a specific set of data is still there because there is not way to automate that.

    By Jesse McNelis on Dec 14, 2008

  8. @Derek
    > I think you’ve taken Turing’s quote out of context. Turing described other types of machines 2 years after this quote - but he had been thinking about them since 1943.

    I most certainly am. You are right, he probably meant that programming for a Turing complete machine would never be as repetivie as programming another automata. Still his sentence has some general truth in it and means something in today’s context. By any mean I am not holding it against him if his sentence is wrong in today’s context because we are using bricks written by other people that we do not fully understand. I am holding it against us programmers not to have made his vision come true.

    Thanks for your recommandations, I’ll add that to my TOREAD list.

    By admin on Dec 14, 2008

  9. @nullbot
    I’m not saying that his statement doesn’t have some deep truth in it. It has, and we have taken out much drudgework indeed.

    So you think we need a strong AI to make it come true. A strong IA would certainly make it come true, but I can’t say if it is a necessary condition.

    I’m not thinking about actually using lisp. In fact I am quite happy with python (except for the speed maybe). But there may be things to learn from it to make a new programming language.

    By admin on Dec 14, 2008

  10. @Jesse McNelis
    >The drudgery is not in the programming but in the conversation of human requirements in to code.
    Take the millions of database frontend applications that have been written, the database is already written, the GUI toolkit is already written but the drudgery of creating a layout of GUI components for a specific set of data is still there because there is not way to automate that.

    And why is there still no way to automate that ? This may be the heart of the question. What are the things that we cannot automate and why.

    By admin on Dec 14, 2008

  11. I think the problem is that, as you add clever abstraction ontop of clever abstraction, the complexity becomes progressively harder and harder to manage than a relatively repetetive, human process.

    Business processes can’t afford to be limited by what one, very smart person can hold in their head at a time.

    By Matthew on Dec 14, 2008

Post a Comment