No! AI will not replace developers

I know! I promised myself not to talk about AI because, like many of you, I think I’m overdosing on hearing about AI all the time. However, I wanted to write this article to answer a question I get more and more often:

Is it still worth studying development given the advances in AI?

Yes, learning development is still relevant.

The implication is that AI will replace our profession and that learning development today will be useless for the future. Personally, I don’t think AI will be able to replace our profession in the near or distant future because, in my opinion, it is too complex.

If we were to create an AI with such capabilities, I think the problem would be more general than whether we could still make development our profession. The question is rather, could we imagine a society without work, because then AI could replace most professions? We don’t live in this world at the moment and I think it’s always relevant to learn about development.

AI will probably change our profession, make it a little different but not completely obsolete, and our profession is characterized by change (development today has nothing to do with what we did 10 years ago…).

History repeats itself

This is not the first time we have been told that our profession is going to disappear. There have been many events in the field of development, and each time these events occurred, it was claimed that our profession would disappear. To give you some key elements that I managed to learn:

In the early days of HTML, software like Dreamweaver came out that allowed you to create interfaces visually, and it was claimed that learning HTML and CSS would no longer make any sense. However, writing code by hand is still the most used solution when creating websites.

When CMS (tools that allow you to create websites with a web interface) came out, the death of development was declared. Why hire a developer when you can easily create your own website with WordPress or something else? CMSs are here to stay, but the demand has not decreased, and this has even led to the emergence of types of developers who specialize in these tools.

Finally, more recently, we have no-code, which allows you to automate certain operations through visual interfaces, thus replacing the code and therefore the developer. As with CMS, this development has not had an impact on the profession and rather allowed developers to automate certain things in order to focus on more important goals.

Every time a technological development intends to replace code, the death of the developer profession is declared.

Code is just one step

The problem comes from the fact that the general public has a bad idea about the developer profession. For many people, being a developer is nothing more than writing lines of code in a certain language.

In fact, code is not necessarily the main goal of a developer, the goal is primarily to take a problem and think about how we are going to solve it. The solution does not come by itself, and we must think about how to approach the problem:

  • What is the need?
  • How can it evolve?
  • What technologies should we use?
  • How can we organize the project so that it can be maintained and scaled?

Only after we have thought everything through, we will start writing the code. The code is just the final part that allows us to explain to the computer what we want from it. And in themselves, tools like CMS, like no-code, are just different ways of explaining things to the computer, and whoever uses CMS or no-code remains a developer.

If we go back to artificial intelligence, which can write code based on a request, then this is nothing more than a new tool that allows us to explain things to the machine. Thus, de facto communication with AI will become a “programming language”. Instead of writing PHP, Java or something else, I would explain in French what I want to do, and the AI ​​would take care of the translation stage. We wouldn’t replace the profession, we’d just transform it with a new tool.

Then we’d have to ask ourselves whether it’s faster to write code, or whether we can get code from the AI ​​that exactly matches what’s being asked for (and I don’t think that’s obvious for complex problems).

The AI ​​is too rough

When writing code, approximation is impossible.

Because the code is either correct or it is not, there is no middle ground. AI tends to be approximate (by nature) in its answers. This is good enough for generating images or text, but impossible when it comes to code generation. Unless you have an AI that responds 100% correctly, it cannot be trusted to delegate development autonomously. This means that every time we ask an AI to write code for something, we are obliged to have a developer come and check the generated code.

Another problem is that the AI ​​has been trained on a lot of code at many different levels. As a result of this training, we get an AI that will write average code.

Also, it may have been trained on the wrong data. For example, code that is outdated and no longer relevant today, or code that contains security vulnerabilities.

For all these reasons, we are obliged to have an AI developer who will check everything. And personally, doing a code review, checking the correctness of the code and its operation is not always easy. Sometimes it can take longer than writing the code yourself. Especially since with AI-generated code, it can’t explain to us how it thought and justify the approach it took.

Currently, AI doesn’t have a good success rate, and personally I don’t think we’ll ever achieve trustworthy AI at this level. Getting to that last 10 percent of success will be a real challenge and may require even more work than anything that’s been done so far.

More Productivity = Less Demand

Another point that can be scary is that the productivity gains brought about by AI translate into less demand, as one developer will be able to do the work of 10 developers. This is a point that remains true, but can also work both ways given the principle of elasticity of demand.

Over the years, our productivity as developers has continued to increase (with the advent of frameworks or libraries that allow us to build sites much faster than in the past), but at the same time, the demand for developers has only increased. Because with more efficient and numerous developers, you can create larger projects, which was not easy to do in the past.

For me, increased productivity does not necessarily mean loss of employment. It can actually work both ways, and only time will tell. I don’t think we can rely on this argument and say that the profession will disappear.

AI attracts lying entrepreneurs

Some of you will tell me

Yes, but here you are talking about artificial intelligence at the moment, but in the more or less distant future it will be able to solve complex problems and in this case threaten your profession.

So I would say that we should be careful with the hype around artificial intelligence, because it is an area that attracts a lot of investment, and therefore some companies do not hesitate to lie or exaggerate their capabilities in order to attract investors.

To give you some concrete examples, we recently had Devin, an AI that was supposed to replace developers, with a video demo where the AI ​​was able to solve a problem and write full code from multiple files. It turns out that this demo is fake and that many of the claims are false, but the demo was enough for many people/media to use it as evidence of the programmed end of developers.

We had the same thing with the Gemini (Google AI) demo, which showed someone talking to an AI that seemed to be able to understand interactions in real time. But if we look at the fine print, we can see that this demo is unrealistic and that it is more of a desired vision of AI than what it is currently capable of.

Finally, another announcement I wanted to analyze was made by Nvidia CEO Jensen Huang.

Our goal is to create computing technologies that don’t require programming and whose programming language is human. […] Now everyone in the world is a programmer.

Nvidia is a maker of the GPUs that are needed to train and run AI models. They are a company that has a vested interest in the advancement of AI (since in the case of blockchain, they are an indirect beneficiary of the AI ​​hype), and they have a vested interest in the redefinition and evolution of AI. Also, and this goes back to the first point, just because anyone can now generate code doesn’t mean we can build apps. But by selling this capability, Nvidia is trying to reinforce the idea that AI will continue to advance at a significant rate and become the technology of the future. In fact, it is just a company that adapts to the market and communicates in that sense.

Finally, for those who cite Elon Musk as a source of information, he is not the person you can trust to predict a trend…

More generally, I would advise you to pay attention to sources of information related to artificial intelligence. Try to find the original quote in the article and find out who the author is. Is he interested in promoting artificial intelligence? And also apply the same restraint to this article, because as a developer, I will have a completely different opinion than someone working in the field of AI. It is important to get opinions from different people and form your own opinion based on that. Don’t rely only on one person’s opinion for or against, but really try to listen to both opinions.

Artificial General Intelligence

I could be wrong. And AGI , artificial general intelligence , could be closer than we think. In that case, we will get AI with human cognitive abilities and the speed of a computer. If we do reach this level of AI, I think the issue will not be whether we can save our developer profession, but whether we can imagine a society that is not focused on work, because no profession will be saved. We could still learn development, but then it would be for leisure, not a calling.

Should I avoid using AI?

Finally, I would like to expand on this article about the use of artificial intelligence in our field, because it may seem that I am against AI, but I am not. I think AI is an interesting solution that will allow us to solve problems that we have not been able to solve easily with simple algorithms so far, and this will open up many interesting perspectives. On the other hand, I think that at the moment we are trying to use AI to respond to problems that are not necessarily adapted to its use, selling it as a solution to all problems.

GPT Chat for Learning

As a trainer, I am often asked what I think about AI as a learning vector. Personally, I’m a little confused on this topic because I think AI can be interesting for getting answers tailored to your problem and your level of understanding. And this is not necessarily very different from the research we’ve done on various support forums. The main drawback of AI is that it can be wrong with a high degree of certainty and give you incorrect information. So it’s important to validate what AI gives you, but this in itself is not necessarily very different from searching, which can give you bad results. The difference is that forums often have people who criticize the given answers and suggest new ones, which helps improve the context.

Another drawback is that technology is evolving quite quickly, and the models are not necessarily trained on fresh enough data. Trying to teach AI to code is harder than learning a living language that doesn’t change significantly over the years.

Co-pilot for writing code

With AI, we’ve also seen the emergence of “co-pilots”, i.e. AI that integrates with editors and offers code suggestions as soon as you start writing.

For me, this doesn’t necessarily seem very practical, as it negatively impacts the way I work. With the classic auto-completion offered by the editor, I can roughly predict what will be suggested to me, and I know that the suggestions are correct. When I type the beginning of a method name, I expect it to suggest methods that exist in the current object and are documented.

The problem with AI is that it is not deterministic and can give anything depending on the situation. Also, we start writing a small code and then wait for a suggestion to come in. We need to quickly scan the provided code to see if it matches what we wanted to do or not. If it doesn’t match, we move on to get another suggestion and see if it fits or not, and so on…

Instead of writing code and going from our thoughts to code, we find ourselves in a game where the AI ​​will try to guess what we are trying to do, while we check that the suggestions match expectations, making changes if necessary. . Every time the AI ​​suggests code, we are forced to analyze it to see if it matches what we want or not, and this is something I find mentally exhausting. This is why I am not necessarily a fan of these solutions, but this remains a personal opinion, and if this approach suits you, I see no contraindications.

Conclusion

If I have to summarize a little, I do not think that artificial intelligence will be capable of complex reasoning in the near future, and I think it will be limited to completing code under the guidance of a director who will be a developer. I also do not think that AI will not be able to generate produce code that is systematically correct, and you will definitely need to check that what it says is correct. This can be useful when you have small questions, and it also allows you to generate code tailored to the question (with the right variable names and the right data). I think AI is useful in certain cases, like writing tests, generating data, but I don’t think it’s good enough yet to be another way to write programs.