Thanks to artificial intelligence (AI), software will write itself in the future. At least, that’s how Google -CEO Sundar Pichai sees the future of software development. And he’s right! This does not make software developers superfluous – on the contrary.
Will AI replace computer programmers in the near future? Will it be possible to completely replace the programmer? Probably only if we can create the so-called strong artificial intelligence (artificial general intelligence) – that is, one that fulfills the assumption that certain forms of artificial intelligence have all the properties available to the human mind.
The answer is very simple: No. What will happen instead is that “computer programmers” will become “AI programmers”.
Nobody doubts that AI is getting much better at programming every day. And it is a fact that AI-driven tools will ultimately be much better than people in programming. But machines won’t become independent of humans that quickly, and being able to create useful and practical code that spans more than a few lines is something that requires a level of intelligence that comes close to the famous singularity.
Programmers no longer write code by hand. They are already using a variety of intelligent tools that allow them to automate their compilation efforts. And that’s what AI does: It supports programmers. But a future in which artificial intelligence will be able to make all the right decisions to develop software from scratch or to interpret the commercial value of each feature is still extremely far away.
Most of the new AI-based tools instead improve their accuracy and performance through machine learning. Thanks to extensive trial-and-error, your neural network architectures help you to automate your tasks better and more precisely.
And there they are better than humans: find and fix errors. But they are not autonomous enough and probably never will be to have their own “opinions” about which one is the best approach to solving a problem or generating a new feature.
Ultimately, people will move away from the “programmer” job and simply learn to “drive” their machine-learning tools to support them more efficiently. Since AI automates a complex task that previously required very special knowledge, developers have a lot more time to concentrate on the “human” aspects of their work.
People are always needed to fill the gaps that will always be lacking in machines, such as interacting with other developers, researching new, bold solutions to known problems, or simply implementing their creativity.
Advocates of classic software development may rightly say that there is more to good software than code: a user-friendly structure, for example, valid test data and a practical test environment, as well as interfaces to other applications.
Now one could say that all this has to be put together by a thinking person, viewed logically, and with a lot of experience in order to finally code the program. That means, even the most intelligent artificial intelligence needs a person’s specifications.
How Can AI Simplify Human Work?
Frameworks as development frameworks or libraries with definitions already naturally simplify the work of software developers. Developments such as containerization or the serverless concept also go in this direction.
The developers take care of the heart of the application, while the runtime environment is made available by others. More or less annoying peripheral tasks, such as the implementation and configuration of the hardware, the management of the traffic, and the like, are no longer necessary.
Now frameworks are by no means just static. They optimize the code, suggest completions à la Google search, and convert graphically created templates into source code. So the idea that someone will no longer have to be a developer to tell an AI what an application should look like may not be that far-fetched.
An example: A creative web designer could in future hand over his mockup to the AI, which then creates the HTML code from it. All the rules and all the knowledge that the AI needs for this would be very easy to teach it.
And even more: From user data or other available data, the AI could not only optimize the program code but also the program itself. For example, on a website, where is the optimal place for an image on the website?
How many online users don’t feel like scrolling or only see web content on the go? Do the surfers find subtle colors more pleasant or do you reach the target group better with bright designs? With this or similar data, an AI can learn what the targeted user likes best and optimize the website accordingly.
The particular strength of such systems: They can calculate quickly, recognize patterns, and can adapt the overall concept if the conditions change. At which point real intelligence begins is a more philosophical question. So back to the beginning: Is an AI only as good as a person’s specifications and the data that he makes available to the system?
How Will AI Impact Programming Jobs?
The fact also seems that the work of software developers will change fundamentally. Neural networks or artificial intelligence will help improve digital work, but they will hardly replace developers in the foreseeable future.
We are already using small-scale learning systems – from the auto-completion already mentioned in the Google search to playlists from the music streaming service provider that always offers the right music according to individual taste, current mood, and times of the day.
The need for application developers has increased significantly. Digitization is taking place in all areas of life and work – after all, someone has to develop the AI, control it, set the framework and data.
For example, developers will likely write less and less code, and even less review or optimize it. In the future, they will rather work conceptually in the areas of data science or digital innovation.
Developers will also have to make sure that AI is not left to its own devices and that it is tested according to human conditions. This can also mean not designing a website according to a calculated optimum, but deliberately breaking out – in short, working creatively.
Today’s Coder Will Be The AI Coach Tomorrow.
AI can be an excellent partner. For example, many companies use pair programming techniques, in which experts from different areas develop software together. Everyone brings different experiences and approaches. The result is clearly more user-oriented applications.
When we talk about software 2.0, the learning machine comes as a high-quality partner, who can make recommendations based on what has been learned and can automate test runs with numerous data. However, the creative person determines in which direction the overall construction moves, because not every optimizing recommendation leads to the actual goal – intuitive software.
It must be recognized that AI is still very far from the creativity necessary for any good developer. We are far from an AI capable of creating Facebook, integrating a graphic charter, or managing the errors of a form.
And Artificial Intelligence, in its “deep learning” version, will not be able to function without ” training “, that is to say, the fact of confronting it with an infinity of situations so that it can learn by itself. This is precisely where the human being, the coder, will have to transform his profession.
How Can AI Help Programmers?
In the meantime, before replacing them, AI rather begins to integrate with programming tools to help developers improve the quality of their code and speed up their work. Thus, the new Visual Studio 2019 incorporates an AI called IntelliCode, which helps in formatting the code and provides recommendations. Kite does the same for programming in Python. DeepCode scans source codes for vulnerabilities.
In a similar vein, Yagaan’s AI performs code audits throughout the development phase to highlight the security risks present. UbiSoft has developed Commit Assistant, an AI that has learned from historically committed programming mistakes and helps developers to stop making them.
Google also has a bug prediction AI. Another example, “ Sketch 2Code “, is based on an AI which transforms interface drawings made by hand into HTML code. For its part, SmartBear has started to integrate AI into its TestComplete test automation tool. EggPlant, in fact, seems, does the same.
At the same time, artificial intelligence is also called to the rescue of “No-Code/Low-Code” tools to better help Developers to take charge of these environments and realize their applications.
Mendix, with its Mendix Assist, was one of the first players to see the potential of AI as development aid. Last May, Appian announced ” Appian AI ” for its Low-Code platform, an extension mainly intended to simplify the integration of cognitive services within applications.
What is the Future of AI?
In short, the AI is not yet ready to replace the programmers. But current projects demonstrate that we will be able to ask him to code for himself in the relatively near future. In the meantime, it is part of the “augmented” developer movement, allowing it to produce fewer bugs and code faster.
So there is no need to worry for software developers. Some old jobs might get replaced. However, a skilled developer isn’t replaceable by AI at least for the next one or two decades. Stay up to date with the latest technology and develop your skills. AI is here only to help us, not to replace our jobs. However, AI will have a massive impact on the world than any other innovations in history.
I hope you got something out of this article. If you have any doubts or queries, feel free to ask them in the comments section (do it before some robots will come and fill the comments section).
I would appreciate it if you would be willing to share this article. It will encourage me to create more useful articles like this.