The question seems somewhat ironic if you think about it. Are the creations—intelligent systems—set to replace or displace their creators—programmers—in the future? It sounds like the plot of a sci-fi movie, doesn’t it? The more important question, though, is: Can it be true?
A recent future of employment study predicts that nearly 50% of the jobs in the U.S. are likely to be automated by 2030. If we take the finding as fact, then the near future does seem a bit bleak. But, before you think about the doom-and-gloom scenario—one where robots take over all of our jobs—let’s take a look first at how artificial intelligence (AI) benefits programmers.
How AI Helps Programmers
Even before the traditional software development cycle starts, programmers already need to determine the technical specifications or features and functions of the product they are creating. Only then can they start actual design and development, followed by testing, deployment, and maintenance.
Moving from one step to the next, of course, reveals bugs that need fixing and gaps that need addressing. Any piece of software requires several rounds of testing and enhancement before it is released. The software development process can be tedious, costly, and time-consuming. It can be frustrating for humans. Programmers need help, enter AI.
1. Program Writing Assistance
AI technology allows programmers to determine errors in their code as these are written. Ubisoft, a French software developer, is a pioneer in this space. It created the AI tool, Commit Assistant, to check for incorrect codes using a software library of usual coding errors encountered in previous projects. Commit Assistant thus prevents programmers from making the same mistakes they once did, consequently saving them time and effort correcting errors later on in the process.
Other examples of AI tools that ease programmers’ lives include intelligent programming assistants, which provide programmers with auto-complete suggestions as they write code. And why wouldn’t programmers use them? Let’s face it, reading hundreds of pages of documentation can be tiring.
2. Bug Fixing
A lot of weaknesses in software only appear once they are already in use. That’s pretty normal since manufacturers often need to rush going to market to beat the competition. And so there are hardly any programs that don’t have exploitable vulnerabilities.
AI and machine learning (ML) algorithms can solve that. They can configure computers to analyze programs for errors and fix them accordingly before they go to market.
3. Accurate Project Delivery Estimation
Software development projects hardly ever meet timelines and budgets that are set for them before they even begin.
But, with AI’s help, using historical data from previous projects can enable programmers (or, more precisely, their project managers) to provide management more accurate schedules and funding requirements, while considering all possible scenarios and potential challenges.
Can AI Do Coding?
The quick-and-dirty answer would be yes. One example would be an AI language-generating system called “GPT-3“, the descendant of what was dubbed the “world’s most dangerous AI,” GPT-2.
While GPT-3 boasts of the capability to code in various languages (e.g., Cascading Style Sheets [CSS], JSX, Python, etc.), like any newly developed software, it still has many flaws to overcome. One of those is that the code GPT-3 produces may not be useful. It also commits errors that are pretty hard to correct without the help of humans. Examples would be trivia and simple mathematical questions like “What number comes before a million?” to which GPT-3 would reply, “Nine hundred thousand and ninety-nine.”
Can AI Systems Take Programmers’ Place?
Going back to the overarching question, “Can AI systems take programmers’ place?” Human software developers around the world can breathe easily for now. The answer to the important question is: Not necessarily.
Although AI tools, which can write simple code, already exist, they have no way to determine which features to prioritize or what problem a piece of software in development would address.
Only an ingenious programmer can craft code based on an understanding of precise specifications and requirements for now. And as the example shows, only programmers, for now, can make sense of tricky questions that don’t have exact answers or multiple possible responses.
In fact, what researchers initially opined—the role of programmers may only change as AI systems further improve—remains true. In the future, instead of writing actual code, they will be responsible for analyzing and curating data for use as inputs to AI algorithms that will then create software.
So will AI replace programmers? No, it won’t, at least, for now. Programmers, however, should be aware of current technologies like GPT-3, which are capable of generating computer programs that do not involve any coding. Software engineers can simply describe parameters and elements to prime or prepare the program. While the said AI still needs refinement, particularly in priming, it can potentially remove many tasks from programmers’ hands.
Instead of painting a gloomy scenario, programmers should probably embrace the benefits that AI provides. Various industries are already adopting the technology to increase productivity and lower costs. The trend is inevitable, and so instead of fearing it, they may do better to enhance their skill sets to adapt to the changing landscape.