High Score Labs News • Jun 4, 2021
It’s amazing how far computer programming has come within the last two decades. If you had to take a programming exam just a little less than twenty years ago, you’d have had to write out code on paper. Today, there’s talk about automating the entire coding process using AI and neural networks, thereby eliminating human involvement in the process. We believe that’s impossible for three significant reasons. First, let’s discuss how AI and Neural networks are expected to function in coding.
Neural Network Tools in Coding
There are three major distinctive applications of neural networks to coding. We came up with catchy names for the first two categories; hope they stick.
As the name implies, they are expected to identify bugs. It’s been quite a successful innovation and has proved helpful for many coders. Swiss-based company DeepCode is the leading revolutionary in the turf, but even their offering has some significant drawbacks.
- Code Producers or Auto-completers
Tools in this category are intended to produce code by themselves or autocomplete code for programmers. The world’s leading development platforms have already begun to roll out these tools. For example, Facebook has a system called Aroma which autocompletes small programs, and DeepMind owns a neural network that remodels human-generated simple algorithms into more efficient versions of themselves.
· MISIM – Machine Inferred Code Similarity
This is, perhaps, the most exciting prospect of applying neural networks to coding. The system was developed by a team of researchers from Intel, MIT, and the Georgia Institute of Technology. The researchers claim that the system can extract the “meaning” of a piece of code in the same way that Natural Language Processing systems can read paragraphs of human-generated text. Thus, it will read code as written and automatically write modules to achieve common tasks.
If their full potential is realized, these applications of neural networks would effectively streamline the coding process. For now, though, they have shortcomings that severely limit their capabilities.
While bug-catching tools utilizing AI and machine learning have proved very useful in assisting human coders, they much too often produce a colossal number of false positives, i.e., features the AI thinks are bugs but aren’t. While this is inherently good news, infosec speaking, it exposes the inability of such tools to understand the intricacies of contemporary programming.
Code producers and auto-completers have proven capable of producing simple pieces of code, even from natural language descriptions. However, they do so under human direction. Unlike humans, they cannot study a design brief and work out the best approach to take.
We cannot evaluate MISIM and its associate systems for their limitations. They are only in the early stages of development and are a long way from becoming a public beta.
AI and Neural networks are a long way from replacing humans in the coding process, for the immediate future at least. Instead, what they can do is assist human coders to improve their efficiency better. For now, though, human coders can rest assured that they’ll keep their jobs a little longer.