Recently, the tech giant Microsoft developed an artificial intelligence that is able to program by reusing the code of other applications. It means that anyone without advanced coding knowledge could now easily build software.
Microsoft’s New AI Writes Code For People Who Don’t Know Coding
Microsoft Research, in collaboration with the University of Cambridge in the United Kingdom, has developed an artificial intelligence that can program by reusing the code of other applications. Thanks to this, anyone without advanced coding knowledge could build software from previously given guidelines.
“A dream of AI is to build systems that can write computer programs,” say researchers in the paper that collect their work and they are not the only ones who want to achieve this: as we saw a few weeks ago, Google also intended their artificial intelligence to create other AIs.
The new system, which has been christened DeepCoder, is based on a technique called synthesis programming, which is a form of automatic programming in which it is the computer itself or the software that writes the programs. Thanks to this, the AI performs a search in a code database simply to build its own software with which to solve simple programming problems, all in a matter of a few seconds.
DeepCoder uses machine learning to analyze which lines of code best to fit the previous requirements, and in addition, its performance improves with time as it solves problems.
According to Marc Brockschmidt, one of the members of the Microsoft Research team, this system is especially attractive for people who do not know how to program, since all they have to do is describe what they need and artificial intelligence will simply create software for them in record time.
At the moment, the capabilities of DeepCoder are quite basic and still have many limitations, but it has great potential in code development automation. However, according to Armando Solar-Lezama of MIT, this system is not a threat to the work of the developers but is a practical tool that can be used to handle routine tasks so that programmers can dedicate themselves to issues of greater complexity.