Artificial intelligence is coming to take people's jobs. According to one Oxford study 47% of all jobs in the USA is likely to be automated by 2030. Even programmers – the people who actually build intelligent algorithms – can be replaced by the very technology they created. If AI can generate music, create art, and play chess, what stops it from writing code as well?
In fact, it’s already doing that.
What AI applications can write code?
Bayou is an AI application that uses deep learning to generate code by itself. It has been trained on open source Java code from Github. In a similar to Google search way, Bayou uses a few keywords to predict what program a software developer is writing and suggests the specific steps needed to complete it. The project is funded by Google and DARPA.
DeepCoder is another project in this area. Developed by Microsoft and Cambridge University researches, this AI app searches through a large code database to help programmers solve simple coding problems. For now though, it can only build programs that consist of a few lines of code.
Ubisoft, a French game development company has also built a system that simplifies developers' work. It's called Commit Assistant and it's an AI tool that helps programmers prevent mistakes in their code. It uses a huge software library to learn where in code mistakes have historically been made and how they were corrected. And then it detects a potential bug even before a developer makes it. According to Ubisoft, the effort that goes into fixing bugs in the process of game development takes up to 70% of project costs. Commit Assistant can save all that money that goes into fixing software errors.
Software development is expensive. And if technology can make it cheaper and faster there is no reason why AI code shouldn’t happen.
Well, there is one.
Evans Data Corporation conducted a survey of 550 programmers and found out that being replaced by artificial intelligence is the most worrisome thing in the software programmer’s career.
With all those advanced artificial intelligence technologies appearing, the question that programmers must be asking themselves is:
Does the future really look so dark for software programmers?
Hardly so.
AI apps like Bayou, DeepCoder, and Commit Assistant automate some tedious parts of coding. They can produce a few lines of code but they can’t yet write programs on their own, nor can they interpret business value and prioritize features.
Converting design mockups into HTML and CSS code seems to be the easiest task in programming soon-to-be-replaced with AI.
Airbnb has recently introduced Sketch2Code – a new tool that lets you convert your hands-drawn design into an HTML code with the help of AI. But even this product of neural networks doesn't generate any code on its own. It's simply picking the right components created by humans.
What most people understand by artificial intelligence is that this technology can think and reason just like a human being. This type of AI is called AGI (Artificial General Intelligence), and it's not something humans can build yet.
Today's intelligent systems can be trained to recognize faces in pictures, make personalized product recommendations, predict mistakes in code. But they can't think like human brain. Nor can they write their own algorithms that solve problems just like human programmers do.
"Creating software is primarily about converting vague requirements into a strict specification that can be run deterministically," said Artur Hebda, a software developer from Railsware, an AI consulting firm, "And that’s not easy even for humans."
Trying to specify software and understand what problem it's going to solve is much harder than just writing the code. This is something only humans can do.
AI is there to help programmers, rather than replace them
Programmers very rarely build code from scratch. To write a program is a lot like to assemble a house from building blocks packaged as libraries and frameworks. To bond these blocks together developers use application programming interfaces (APIs). APIs help one software system interact with a specific operating system, database, hardware platform, or another software system.
A lot of computer systems today contain millions of lines of code, and are way beyond a single person’s comprehension. Developers need better tools to navigate this complex and growing collection of APIs. And this is something artificial intelligence can help programmers do.
"AI will become much better at exploring problems and generating code that connects multiple APIs to solve these problems," said Hebda. "Unlike people, computers are not driven by emotions. They don’t make syntactic or logical errors. They just need to be told what problem needs to be solved and that’s where we need developers."
Get ready for the future with AI
Five years ago, one Oxford study estimated that software engineers have just an 8% chance of automation in the next 20 years.
Another study by a team of researchers at the US Department of Energy's Oak Ridge National Laboratory, claims that by 2040 machine learning and natural language processing technologies will be capable of writing better software code faster than the best human coders.
The most recent forecasts say the demand for developers is set to massively increase over the next decade. Among all programming jobs, the ones that involve creating, running, optimizing and testing AI are the most in demand and the most well-paying.
While we can't tell exactly what will happen in the future, there is one thing we're pretty certain about: programmers will be seeing more and more AI in their workplace in the coming years.
And if AI does make a programmer's job obsolete, there's no need to worry. Technology has been taking the jobs of people throughout its history. And 20 years from now, there will be loads of new jobs we can’t even imagine.
This article does not necessarily reflect the opinions of the editors or management of EconoTimes.