

Why programming is hard to automate - DiabloD3
http://www.xamuel.com/programming-hard-to-automate/

======
3pt14159
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.

------
jackweirdy
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...](https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html)

------
gone35
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.

------
jessriedel
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.

~~~
JoeAltmaier
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.

~~~
jessriedel
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.

------
fragsworth
> 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.

