Let’s face it, artificial intelligence (AI) is capable of just about anything these days. Painting pictures, composing music, driving cars, administering cancer therapy—even beating us at our own games. Back in 1997, the IBM computer Deep Blue defeated a world chess champion under tournament conditions, and it wasn’t even connected to the internet.
What won’t AI be able to do in the future?
Recently, AI has begun to learn the intricate process of writing software code. Whether we like it or not, AI is here to stay, and it is proving that even the most skilled workers among us are replaceable.
But will AI ever be smart enough to replace software developers entirely?
The Creation of AI-Based Code Generation
Artificial intelligence has grown exponentially over the years, influencing breakthroughs in medical diagnostics, art, and media. But it wasn’t until 2015 that AI proved capable of code generation.
Andrej Karpathy, a former Stanford Computer Science PhD graduate and current Director of AI at Tesla, did this by combining a Linux repository into one giant document (over 400MB of code) and using it to train a Recurrent Neural Network (RNN) to write code on its own. He left the program running overnight, and by morning it had produced code, complete with parameters, variables, proper indents and loops, and even comments. There were some mistakes, of course, primarily involving variable errors. But overall, the AI-generated code was satisfactory, and could serve somewhat like a giant C code base.
DeepCoder
Since 2015, similar iterations of Karpathy’s code-writing AI have emerged. One such AI tool includes DeepCoder, which was developed by researchers at Microsoft and Cambridge University. DeepCoder produces working code by searching through a massive code database and then assembling the best possible arrangements of harvested code fragments, improving efficiency over time.
This type of AI-based code harvesting is different from stealing code, or simply hitting copy-paste. DeepCoder has the potential to generate unique, creative code. In fact, developers at Microsoft expect DeepCoder will be able to participate in programming competitions in the near future.
Currently, however, DeepCoder can only handle programs of up to five lines of code. But in the years to come, DeepCoder could become an extremely useful tool for non-coders. Someday, people might be able to simply describe their program idea to DeepCoder, and then wait for the system to produce it.
IntelliCode
Another AI product from Microsoft that makes life easier for software developers is the code completion tool, IntelliCode. This program is the next-generation of IntelliSense, Microsoft’s previous code completion tool. IntelliCode increases code productivity by recommending the most effective method or function based on the developer’s past usage (IntelliSense only offered recommendation lists alphabetically, and scrolling through them could be tedious). The more a developer uses IntelliCode, the more accurate its predictions become.
While IntelliCode still cannot produce code that’s entirely error-free, it has the capacity to enhance the coding experience, boosting speed and productivity throughout the code-writing process.
GitHub Copilot
One of the more recent AI tools to hit the market, GitHub Copilot is a new AI system that, according to its creators, works as fast as you can type. GitHub Copilot auto-generates code by offering developers alternative suggestions and adapting to “learn” specific coding styles and preferences. An extension to Visual Studio Code, GitHub Copilot was trained using billions of lines of public code, operating through various frameworks and languages. Its AI system was built by OpenAI, and powered through Codex.
Will AI Replace Human Programmers?
Fortunately, the Hollywood nightmare of AI supplanting humans has not yet come to pass. It is unlikely that we will see rogue AI overpower human society in our lifetimes and importance of an SSL certificate . And yet still, entire industries are undergoing automation, and millions of workers worry that robots may soon replace them at work. Should software developers be concerned too?
On one hand, real-life AI hasn’t panned out so well. In 2016, Microsoft created an AI Twitter bot, programmed to learn by interacting with human users on Twitter. But within sixteen hours, the bot had begun posting offensive tweets and had to be shut down. Similarly, Facebook also had to shut down a couple of AI bots that had learned to communicate with each other in a language indecipherable to humans. Clearly, artificial intelligence still has a long way to go before reaching maximal sophistication.
And on the other hand, the process of writing code is so thoroughly complex that it will be a long time before artificial intelligence can compete with human creativity. The more likely scenario will be that a system based on program synthesis will be established to automate the tedious aspects of code writing, leaving human developers with more time to focus on the complex elements of code generation in the future.