Programmers might one day be able to focus on the problems that need solving instead of the most tedious work involved in solving them.
There’s a great deal of controversy lately over artificial intelligence and robotics, specifically the potential for both to replace human workers and cause economic dislocations. While concerns about robotics tend to focus on physical labor, AI has some people worried that jobs requiring purely intellectual labor are at risk as well.
The jury is still out on whether those concerns are justified, but the areas where AI is starting to make its mark continue to increase in number. Recently, Microsoft Research worked with researchers at the University of Cambridge to create DeepCoder, a machine learning system built to solve programming challenges, as New Scientist reports.
DeepCoder uses program synthesis, the process of combining existing code to create new applications, to search and integrate the best source code in the best combinations to solve problems. Once the system knows what a human programmer wants it to accomplish, along with the available inputs, the system can then search more quickly and more completely than any human coder to create a new application.
The system also learns as it goes along, meaning that it’s not only initially many times faster than previous systems but it also gets faster the more it works. Ultimately, a system like DeepCoder could enhance human programming by taking over the most tedious work and completing it in a fraction of the time, freeing the human coder for more interesting and sophisticated work.
According to Armando Solar-Lezama, an unrelated researcher at the Massachusetts Institute of Technology, “All of a sudden people could be so much more productive. They could build systems that it [would be] impossible to build before. The potential for automation that this kind of technology offers could really signify an enormous [reduction] in the amount of effort it takes to produce code.”
DeepCoder is currently limited to working with limited code samples, around five lines of code in total. That’s not so great a limitation, however, given that the largest applications are themselves made up of smaller pieces of code. Given the system’s overall speed and the ever-increasing power of AI in general, we can look forward to a time when programmers let a computer do the dirty work and focus themselves on defining the problem.