Will AI replace Software Engineers? Do not hold your breath
Abhik Roychoudhury, Andreas Zeller
TL;DR
The paper examines whether large language models can replace software engineers, arguing that software engineering hinges on maintenance and understanding of semantics beyond code generation. It distinguishes syntactic capabilities of LLMs from the need to reason about dynamic program execution, which remains challenging. It proposes program-execution-informed approaches, suggesting training on execution features to build execution-aware guidance for maintenance and repairs that can be validated by running the code. The conclusion emphasizes a future of human-AI collaboration, where LLMs assist but do not supplant human expertise, underscoring the necessity of tools, analysis, and oversight for reliable software.
Abstract
Artificial Intelligence (AI) technology such as Large Language Models (LLMs) have become extremely popular in creating code. This has led to the conjecture that future software jobs will be exclusively conducted by LLMs, and the software industry will cease to exist. But software engineering is much more than producing code -- notably, \emph{maintaining} large software and keeping it reliable is a major part of software engineering, which LLMs are not yet capable of.
