AI coding may lead to automation and simplification of programming.
Researchers at Microsoft and the University of Cambridge have created an AI system called DeepCoder, capable of writing its own code. The system was put to the test and managed to solve basic challenges similar to what can be found in programming competitions. The technology is an important advancement that could lead to programming becoming a lot more accessible to users who don’t know programming languages well enough to use them efficiently, or even help with writing simple programs for people with no experience with coding at all.
“All of a sudden people could be so much more productive,” says MIT’s Armando Solar-Lezama, who was not involved in the work. “They could build systems that it [would be] impossible to build before.” Marc Brockschmidt, one of DeepCoder’s creators at Microsoft Research in Cambridge, UK, adds that it could make it possible for a user to simply describe what kind of program they want, and let the system build it for them.
DeepCoder uses a technology called program synthesis. In the same way that a programmer might do, DeepCoder creates new code by borrowing snippets of code from other software that performs the function it needs. By giving the AI some basic inputs and outputs, the system itself determines what code is needed to achieve the desired effect and hunts it down.
The advantage to a system like DeepCode is that it machine learning to search through databases of code, and can thus compare a large number of approaches to a problem, coming up with solutions that might not be obvious to a human coder. In addition, the system is fast. Whereas previous attempts at AI coding have taken several minutes to write a basic program, DeepCoder can accomplish the same task in a fraction of a second.
“The potential for automation that this kind of technology offers could really signify an enormous [reduction] in the amount of effort it takes to develop code,” says Solar-Lezama. He doesn’t however, believe that AI coders will put human ones out of a job. They will simply automate the tedious part of coding, freeing up the programmer to work on more sophisticated problems.
source: New Scientist