Live data from Hacker News

AI learns to write its own code by stealing from other programs

newscientist.com

151–160 of 160 posts

Re: AI learns to write its own code by stealing from other programs

#151
post #45

“It could allow non-coders to simply describe an idea for a program and let the system build it” This is not a new thought. The problem with it, however, is that such a description would have to be very precise or else leave room for different interpretations which in turn could lead to very different programs being generated. In particular, as programmers know, it's often the edge cases that pose the main difficulty…

The AI would have to be able to ask for clarifications on ambiguity as it goes.

Re: AI learns to write its own code by stealing from other programs

#152
Well, it's obvious that there will be an improvement in specifiying the syntax for a computer program as it has been for the last decades.

e.g. Assembler -> C -> C++

There recently has been a post @ HN about the missing programming paradigm (http://wiki.c2.com/?ThereAreExactlyThreeParadigms). With the emerge of smarter tools, programming will get easier in one way or the other, releasing the coder from a lot of pain ( as C or C++ did realse us from tedious, painful assembler ). However, I am quite sure that it won't replace programmers since our job is actually not to code but more to solve a given problem with a range of tools. Smarter tools will probably boost productivity of a single person to handle bigger and more complex architectures or other kinds of new problem areas will come up. Research will go faster. Products will get developed faster. Everything will kind of speed up. Nevertheless, the problems to get solve / implement will remain until there's some kind of GAI. If there's an GAI smart enough to solve our problems probably most of the Jobs have been replaced.

Re: AI learns to write its own code by stealing from other programs

#153

Earlier quoted context omitted.

> im told that "software developers are the one job that will never be at risk of automation" The AI is itself a program. If the AI can write programs, it can write a better version of itself. A few iterations of this, and it will have far surpassed human intelligence. So it would be more accurate to say that writing programs is the last job that will be automated.

> The AI is itself a program. If the AI can write programs, it can write a better version of itself. Not necessarily (or even likely). There's a huge difference between being able to write "programs" (for example the ones described here are ~5 lines) and being able to write a large and very complex piece of software, which such an AI would undoubtedly be. There's also the question of what constitutes "better." Improv…

> There's a huge difference between being able to write "programs" (for example the ones described here are ~5 lines) and being able to write a large and very complex piece of software, which such an AI would undoubtedly be.

That's true. real-life programs that programmers get paid to write are typically more complex than 5 lines. Any AI good enough to replace real programmers is going to be very close to good enough to rewrite itself.

Re: AI learns to write its own code by stealing from other programs

#154
post #76

Earlier quoted context omitted.

Doesn't TDD basically provide a spec? Write a test, then let the AI generate a program that passes the test. If the program is still buggy, you didn't write sufficient tests.

I don't think it's that simple. Imagine a simple add(int32, int32) int32 function. Unless you write a test for all 2^32 * 2^32 possible inputs and their expected outputs, how could you guarantee that the AI will come up with the "correct" implementation? Automated tests are generally not practical for proofing program correctness. Why would you expect them to be sufficient as a specification format?

With property-based testing one can describing the behavior over the entire domain(s) of valid inputs. Sampling is used to draw a set of cases to actually test, up to a certain number of test. Knowledge about boundary conditions in the domain can help catching failures earlier, though plain random seems to be pretty darn effective (at least for code written by humans). Candidates with dead code should maybe be punished. Candidates with higher complexity should maybe be punished.

Re: AI learns to write its own code by stealing from other programs

#155

Earlier quoted context omitted.

>economics says that decreasing price, the price for a given unit of work going down increases the demand for such an AI costs nothing in the long term, so you are agreeing here that demand for AI produced software will rise more sharply than demand for human developers, because they are more expensive. So if you accept that basic law of economics, then you must arrive at the conclusion that human labor will inevitab…

There is zero reason to believe that software less capable than artificial general intelligence will provide any non trivial software.

Neural nets already provide superhuman performance for many computer vision tasks. Both in terms of output of the algorithm compared to a human judgement. And it does better than most human hand-written algorithm. An automated image captioning algorithm is a non-trivial piece of software.

Re: AI learns to write its own code by stealing from other programs

#156

Programming is translation of requirements written in natural language, graphical notation, and mathematical notation to a deterministic syntax. There has been much improvement in making these syntaxes more closely match these older forms of communication, and I'm sure this is one tool that will be used in the future. However until AI can gather its own requirements, there will always be a translation step that peopl…

What we need are libraries of (automatically verifiable) requirements. As open source components which can be compose together, like we do with the code today. Then we, possibly assisted by "AI", can assemble a solution matching the requirements.

Re: AI learns to write its own code by stealing from other programs

#157
post #89
post #45

“It could allow non-coders to simply describe an idea for a program and let the system build it” This is not a new thought. The problem with it, however, is that such a description would have to be very precise or else leave room for different interpretations which in turn could lead to very different programs being generated. In particular, as programmers know, it's often the edge cases that pose the main difficulty…

In my experience, people have trouble describing something in sufficient detail that another human can build what they want. I think we're a ways off yet from AI being able to do so.

Asking the right questions about the system usually helps a lot though. If an AI can help with that aspect, that may increase productivity at least.

Re: AI learns to write its own code by stealing from other programs

#159

Earlier quoted context omitted.

If you can describe something then you can just code it. I can see AI being used in an advanced IDE as an assistant. Just write your specs and let the AI build the app.

making people in an industry more efficient at their jobs == job losses for that industry. if one programmer can now do the work of 5 with the help of an AI, companies will quickly be hiring less developers. yet everytime i mention this, im told that "software developers are the one job that will never be at risk of automation"

You're right. This could happen tomorrow, if even a small percentage of Excel users suddenly knew how to use it properly. We'd be at 50% unemployment if everyone who uses Excel knew how to take advantage of it.

Re: AI learns to write its own code by stealing from other programs

#160
post #45

“It could allow non-coders to simply describe an idea for a program and let the system build it” This is not a new thought. The problem with it, however, is that such a description would have to be very precise or else leave room for different interpretations which in turn could lead to very different programs being generated. In particular, as programmers know, it's often the edge cases that pose the main difficulty…

"Describing what your program should do in sufficient detail will probably end up being not very far from the actual program itself."

Isn't that the idea behind https://en.wikipedia.org/wiki/Prolog ?

Post reply on HN