Software programmers have long dreamed of software that can program new software autonomously using artificial intelligence. Microsoft is getting close to achieving that goal, with the help of some university programmers.
Cambridge University teamed up with Microsoft to create an AI program called DeepCoder. According to Business Insider, the software uses pieces of code from real software to fashion new code in response to problems. The software studies the functionality of pieces of code, and then pieces them together in unique ways.
As in other areas of AI development, this new software will probably be implemented gradually. At first, DeepCoder might simply solve existing problems faster or easier than humans can solve them. It could be a tool to save programmer’s time and reduce the number of programmers required for a given project. Eventually, though, DeepCoder might solve programming problems that a human could never solve alone.
If DeepCoder develops to that point, it is difficult to imagine what it might create. Ray Kurzweil and others have dreamed of a future with unlimited artificial intelligence. Software that creates software seems like a step in the right direction.
To be fair, though, DeepCoder is not the first software program to write code. Any high-level programming language is essentially writing code based on user inputs. What is unique here is the way in which DeepCoder creates the software (i.e., be selecting from existing software the pieces of code necessary to achieve a desired outcome).
Because of DeepCoder’s approach, it might face some absolute limits to what it can create. Although an extensive amount of software is available today, the number of functions software can perform is finite. Accordingly, DeepCoder’s ability to solve problems must also be finite.
Still, DeepCoder represents an exciting development. Microsoft and its competitors will likely continue to produce AI tools to aid and eventually replace software programmers in the years to come. The software these tools create could be revolutionary.