Thou Shall Not Steal. It’s a guiding principle that applies to everything. But not anymore. Not after a team of researchers from software giant Microsoft (NASDAQ:MSFT) and Cambridge University built DeepCoder — a highly intelligent and sophisticated computer system that makes it possible for machines to write their own programs, by stealing code from other people (or other machines). And if you forget the stealing part, its intentions are actually good.
With DeepCoder, it will now be possible for people who can’t code very well or don’t know how to code at all to write their own programs. All they have to do is describe what it is they want done, and the computer will write the appropriate code to get it done. Even better, it can create programs in a matter of seconds, unlike its older predecessors which needed several minutes to do the job. Ideally, this means that people will have more time to spend on productive, rather than trivial stuff.
The bad news is — this type of capability opens up a host of scary possibilities because the very idea of an AI writing its own program so it can do what it wants to do is terrifying. If you’re familiar with the TV series “Marvel’s Agents of SHIELD”, this is exactly the kind of capability that allowed Aida — the LMD (Life-Model Decoy), or simply, the robot Dr. Radcliffe built — to think for itself and resolve the paradox it was dealing with by wounding Dr. Radcliffe (its creator) and uploading the doctor’s personality into what they referred to as ‘the Framework’ — a kind of virtual world where a person can be kept alive. There was ‘corruption’ involved, though, as Aida was being influenced by an evil book of knowledge called the “Darkhold”. But even that is a realistic threat, right? That DeepCoder can be corrupted to do something beyond what it’s supposed to?
The good news is — DeepCoder can only handle five lines of code. At this time that is. But even that can change real quick, especially because we’re talking about a machine that learns.
DeepCoder works through a method referred to as program synthesis — this is what enables the software to write its own program by stealing lines of code from existing programs, pretty much like what a number of human programmers do. The system just needs to be fed with a few basic inputs and outputs, and it will determine on its own which fragments of code are required to achieve the desired outcome, then searches for those. Compared with human programmers, it is not only able to search thoroughly and more quickly, it can also integrate lines of code faster.
According to its creators, as DeepCoder goes along, it learns which source code combinations work and which don’t. And with each new problem it tries, it keeps on getting better. Which means that even if it can only work around a few lines of code to start with, the important thing is — it’s a beginning. Whether that’s good or bad, however, remains to be seen.
As Professor Armando Solar-Lezama of Massachusetts Institute of Technology (MIT) said to New Scientist: “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. Generating a really big piece of code in one shot is hard, and potentially unrealistic. But really big pieces of code are built by putting together lots of little pieces of code.”
The end doesn’t usually justify the means. But in this case, there’s a chance it might.