Are current events already influencing the professions of the future?
Institutional Communication Service
26 May 2025
A couple of years ago, Jensen Huang, the CEO of Nvidia, announced at an IT fair the start of a "new era" that would transform our relationship with computers, particularly regarding the role of programmers. He stated, "Everyone can be a programmer; they just have to ask Artificial Intelligence." While there are potential conflicts of interest—since Nvidia produces microchips that are in high demand for AI systems—it remains true that after Huang's announcement, other computer scientists have made similar predictions about how the software development landscape will change.
But is this really the case? Are professional programmers destined to become obsolete? We explored this question with Gabriele Bavota, Professor at the USI Faculty of Informatics at Università della Svizzera italiana. Bavota specialises in software engineering, analysis, and development, and he is the principal investigator of DEVINTA, a project aimed at establishing the foundation for a new generation of systems for developers. These systems will utilise Artificial Intelligence (AI) assistants designed to provide support to programmers.
Professor Bavota, what challenges do programmers face today?
"The main issue is the complexity of software systems. For instance, the first version of Windows contained about 2 million lines of code. After 10 years, this number grew to 10 million lines, and 15 years later, it reached 50 million lines. It is quite rare to find software that evolves to become simpler. Today, millions of components interact with one another, and developers must manage this complexity to maintain and evolve systems that incorporate a mix of technologies and programming languages."
Can we do that?
"It is crucial to have developers who are proficient in a variety of programming languages. Many systems, some of which were created 40 years ago, are still in use today due to their reliability. However, there is often a reluctance to rewrite these systems because of the high costs involved. These legacy systems are often coded in languages that are no longer widely used, yet there may be a need to add new functionalities to them. As a result, we require developers proficient in COBOL, a language created in the 1960s, and Java, which is much more popular today, and even future languages that we have yet to invent. Today's students who aspire to become the programmers of tomorrow should concentrate not on writing simple programmes, such as calculators or basic mobile apps, but on addressing the complexities of modern software systems. At USI, we provide a robust specialisation in software engineering to prepare them for this challenge."
Meaning?
"Building a software system is like constructing a bridge: you do not begin by simply stacking bricks; you must design it first. Similarly, with software development, we must first understand the necessary components, the functional requirements (what the software needs to accomplish) and the non-functional requirements (such as performance and security). Once we have that understanding, we can select the appropriate architecture, decide on testing methods, and determine how to identify and fix bugs—an important challenge in itself. Only after these steps do we begin writing the actual code. We teach how to develop a system from its initial concept to its realisation, covering methods for maintaining, evolving, and documenting it. Without proper documentation, future developers will struggle to understand how it was created if I write the code without leaving any record. There is an entire world behind a piece of software, and writing the first version of the code accounts for only about 10 per cent of the overall work."
In what ways does artificial intelligence assist you, and what issues does it create?
"Today, AI can support developers in writing so-called boilerplate code, which is repetitive code found in various software systems. Take the login feature, for example: in 90% of apps, we have to create a user profile, password, and a system for recovering and changing it. Thanks to Artificial Intelligence, we save time and increase productivity by automatically generating features like this. However, there is no contest when it comes to complex or new problems: AI is unlikely to help us; it can write a line of code, a few bits and pieces, but then it is up to the programmer."
Isn't it possible for AI to do more?
"We have observed that while AI offers plausible solutions, these often contain bugs and glitches. Currently, AI can solve simple problems that require a few hundred lines of code. However, software typically consists of millions of lines of code, highlighting how far we are from having AI that can autonomously create complex programs. Moreover, developing software is one challenge, but maintaining and evolving it is an entirely different matter."
Shouldn't maintenance and evolution be a little simpler, within the reach of AI?
"We have noticed that in open source projects, an increasing number of people use Artificial Intelligence to develop new features. However, many individuals lack a comprehensive understanding of the code they are creating. This raises a significant concern: when AI generates complex code, who will be responsible for maintaining it? In a cyberattack, who will be equipped to respond effectively? While these AI systems can enhance productivity and assist programmers, particularly with simpler tasks, we still need experts who can assess the quality of the code produced."
We are faced with Chomsky's paradox: Artificial Intelligence is not intelligent...
"There is no doubt that AI is capable of writing code. However, the real question is whether it truly understands what it writes. AI operates using a statistical model, which means it does not select the correct answers or sequences of words but rather the most probable ones. To illustrate this, we conducted a simple test by asking an AI if a programme comprised of a few lines of code accurately implemented a feature described in English. It answered incorrectly in 60% of the cases. This indicates that the AI did not grasp what the programme was meant to achieve or its purpose. There is a clear difference between writing something that makes sense, such as a sequence of words highly likely to exist in a text (or programme) written by humans, and understanding whether what has been written makes sense. And that is also where the difference lies between a trained programmer and one who is not."
So what does the future hold for programmers?
"Advanced training will be essential. I believe that simple tasks will no longer require a programmer in the future. However, those who can use AI to assist with complex tasks and understand its processes—allowing them to make corrections when necessary—will have a significant advantage."
However, monitoring is still time-consuming. Don't the two cancel each other out?
"There is conflicting evidence regarding the impact of AI on developer productivity. A Microsoft study suggests that AI tools have made their developers more productive. However, some argue that time can be wasted and errors can occur in programmes because developers, when guided by artificial intelligence, may focus too much on specific parts of the code and overlook the bigger picture. Currently, no one has definitive answers about the effects of AI on programmers' knowledge acquisition. In other words, what happens when you primarily work with an AI system? Do you genuinely learn about the system, or do you end up doing tasks according to the AI's instructions without fully understanding? This raises the question of whether this reliance on AI is beneficial or detrimental in the long run. While we may initially be more productive with AI assistance, it is possible that we could develop fewer skills overall, leading to decreased productivity over time."
The CEO of OpenAI has stated that soon the best programmer in the world will be Artificial Intelligence...
"The definition of the 'best programmer in the world' varies. Is it someone who writes the most lines of code in the shortest time, or is it the one who designs, develops, tests, and verifies their code? It is important to remember that writing code is just a small part of a programmer's job. There are numerous other challenges to address both before and after the coding process."
Are there specific AI models for informatics?
"Yes, generic models are taken and then specialised. The real problem is the cost of obtaining something that can compete with commercial models such as ChatGPT. What affects the performance of AI models is their size, which is measured by the number of parameters to be learned during the training phase. ChatGPT is estimated to have 1,800 billion parameters, which results in exorbitant costs for training the model, in the order of millions of dollars. It is unlikely that a company interested in training its own specialised model to support its programmers will be able to afford such costs. One focus of our research is finding ways to enhance the performance of small models, particularly for companies with their own programming languages, while keeping costs low. We are also exploring how to democratise AI, as it is currently controlled by a select few.
What are your lines of research?
"We were among the first to utilise artificial intelligence for developers, concentrating on three main areas: automated bug fixing, automatic Java code generation, and code review automation. In each case, we used data collected from open-source projects to train the AI for these complex tasks. Among these projects, code review automation, which involves inspecting programs for defects, has been the most successful. It has been adopted and further developed by several research groups at various universities and large companies, including Microsoft."
Would you advise young people to become programmers today?
"I would advise them to do so, provided that they train and acquire the knowledge that will enable them to tackle complex challenges. Existing AI models still perform very poorly, so it is unthinkable that they will be writing complete code and maintaining software systems in a few years' time. Not to mention the ethical issues underlying any project: who decides? AI?"
Content produced and published in collaboration with laRegione. (Italian only)