Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why programming is hard to automate (xamuel.com)
11 points by DiabloD3 on July 13, 2014 | hide | past | favorite | 7 comments


I think the key here is that the CEO of EA (or whoever at EA decides these things) does just that: "Create a new Fifa game that dramatically increases how easy it is for people to control players around the field." Then suddenly different division of programmers and designers go off and have meetings, decide details and over a year or so put together the next version which is then beta test it with the stakeholders.

When we have AI, why should we expect it to be so different? Just because the search space is vast, doesn't mean that it is impossible to find a solution, it just means that there is a vast solution space as well.


Dijkstra reduced it to a couple of sentences:

> Hence, computing science is —and will always be— concerned with the interplay between mechanized and human symbol manipulation, usually referred to as "computing" and "programming" respectively. An immediate benefit of this insight is that it reveals "automatic programming" as a contradiction in terms.

From https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E...


Cute, but not quite. To add to 3pt14159's and jessriedel's comments above:

- Fundamentally, automating programming is equivalent to finding a satisfying assignment / refining a specification; so it is a perfectly well-formed question. (Further, we still don't even formally know if it's hard at all; but I digress.)

- It seems to me the "short-circuit" argument kinda defeats itself... by the very fact the explanation itself is a great example of short English sentences successfully conveying a huge cardinality of "minor" variations!

- The "minor variation" device itself seems to me intrinsically flawed. Most (all?) depictions in nature are overwhelmingly sparse --in the SP sense--, and so most plausible instances of minor variations like "changing one pixel" could arguably be produced in a quasi prefix-free / constant overhead manner from the same underlying English language description. Thus the corresponding "eps-close" spheres of minor variations could well form huge equivalence classes --like one would expect from common sense.


This is a very bad argument. To add to what 3pt14159 (and the very first blog commenter) said: it's clear that distinct English sentence don't correspond to distinct possible programs; that's silly. A much more sensible way to think about it is to consider the mapping between distinct English sentences to the sets of programs that a human speaker would consider to have fulfilled the request embodied in those sentences. Those sets define a partition of the space of all programs (i.e. equivalence classes), and you can think about the challenge of automating programming as creating a function that maps English sentences to at least one member of the corresponding equivalence class.

Of course, that doesn't help you solve the problem much, but at least it will keep you from getting confused like the OP is.


Interesting notion; but you quickly get into a situation like those Genie stories, where the Genie is always doing something you didn't expect. Imagine a computer trying hard to optimize its response to a spoken sentence. "Show me all the records with my name in them." {Ok, I'll delete all the records with his name in them, and show an empty list} and so on.


A human speaker would not consider that to have fulfilled the request embodied in that sentence.

In any case, you're discussing the "do as I mean, not what I say" problem, which is completely different than what the OP is talking about.


> I’ll use “Final Fantasy 7″ but you can mentally replace that with whatever suits you.

The author is not making a distinction between "art" and "programming". The translation of natural language to a program is arguably much easier than the translation of natural language to a work of art (drawings, animations, music, etc.) because there are fewer assumptions about the world that the machine has to make.

Also, it's probably going to be very hard to reach a point where natural language can be translated to a work of art, but it's not impossible by any means - just envision a large machine that has all the inner workings of a human brain (hopefully a human who was good at making art). All you have to do is tell it "make something good", and it can do it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: