
spirenko - stock.adobe.com
Vibe coding: A question of chicken feed or food
If used correctly, large language models promise to revolutionise software development. But they do not easily fit some obvious corporate IT use cases
The state of AI in software engineering report from Harness, based on a Coleman Parker poll of 900 software engineers in the US, UK, France and Germany, found that almost two-thirds of the people surveyed (63%) are already using artificial intelligence (AI) tools for code generation, and just over half (51%) anticipate that AI tools will significantly impact the speed of code creation.
AI is being used to help developers speed up coding. In September, Government Digital Services (GDS) reported the results of a trial using AI coding assistants, which found that trial participants saved an average of 56 minutes a working day when using such tools. The biggest impact reported was on the creation of code and analysis, where an average of 24 minutes a day were saved.
GDS’s trial found that over half of the users reported spending less time searching for information or examples, completing tasks faster, solving problems more efficiently and enjoying their job more.
But vibe coding takes the ability to code fast to another level, allowing software engineers to specify what they want to achieve in natural language. It uses generative AI (GenAI) tools like Anthropic’s Claude Code in a way that enables people to use natural language queries to generate software. This promises to lower the barrier to entry for software developers and enable them to create application software far easier. But there are a number of caveats.
Simon Ritter, deputy chief technology officer at Azul Systems, recently spoke to Computer Weekly about some of the challenges in using natural language to write programs.
The first issue a programmer is likely to face, in his experience, is that the majority of programs are written in English-like programming languages that are deterministic, which means the programmer effectively tells the computer exactly what it needs to do: there should be no misunderstanding between what the programmer writes as code, how that code is interpreted by the computer and how it is converted into machine code that instructs the computer’s central processing unit (CPU) what to do.
A compiler translates source code into machine code which can then be run. An interpreter converts and executes the code in real time. In both cases, programmers rely on compilers and interpreters to do the conversion to machine code accurately.
Open to interpretation
But this is not the case when using natural language to specify what the program needs to achieve.
Demonstrating the vagaries of natural language, Ritter said: “The chicken is ready to eat. What does it actually mean? Does it mean there’s a live chicken on the ground and it’s now hungry and wants to eat? Or is it that I bought a chicken from the supermarket, put it in the oven, and now it’s ready for me to eat?”
Both interpretations of the phrase are valid, but as Ritter points out, they have two very different meanings. “Natural language has a real problem when trying to describe unambiguously what you want something to do,” he said.
Vibe coding relies on training AI models. This makes it suitable for some programming tasks, but not all. One example, which should be an ideal use case for vibe coding, is in enterprise software, where it is necessary to create additional functionality or custom code to meet a specific business requirement. The original developer of the software may not be willing to provide this extra functionality, or the cost of doing so is exorbitant. Vibe coding would allow internal software developer teams to add the required functionality with ease.
However, as Ritter points out, the AI-powered code generator is unlikely to have been trained on the specifics of the enterprise applications that requires customisation. “The problem with vibe coding is how do you train your model specifically on the particular application that you’re interested in and have it understand that application so that it could make changes which would be appropriate,” he said.
Unless the company providing the software offered an AI model to enable customers to create additional functionality, Ritter noted that using a third-party AI tool for customising enterprise applications would be quite difficult.
Read more about vibe coding
- Vibe coding: What IT leaders need to know: Vibe coding shifts programming from line-by-line tasks to natural language collaboration with AI. This new approach accelerates delivery but raises new risks.
- Vibe coding tutorial with Replit and GitHub Copilot: Vibe coding, or using AI agents to create application code, is all the rage today. This video tutorial shows how it works using popular AI tools Replit and GitHub Copilot.
Another use case in enterprise computing is for software integration, such as when someone needs to use two or more applications to achieve their work. This is another common problem in enterprise IT, and something that tools for robotic process automation have tried to address. But Ritter believes an AI watching and learning from the user interaction of hundreds of people using different applications would provide a wealth of training data to power enterprise application integration using vibe coding.
While it has limitations, for Ritter, vibe coding is a useful technique for creating non mission-critical code. Some of the simple use cases include creating macros for simple automation such as in spreadsheets or to digest datasets into meaningful reports.
In a guidance document for software developers in government, GDS noted that AI coding assistants can produce deterministic and testable output, which means that the source code generated by vibe coding can easily be tested and verified.
So, looking back at Ritter’s chicken example, if the output does not look right – because the AI misunderstood the programmer’s plain English instructions – the programmer can ask it to try again until the AI produces code that is acceptable. This implies that the programmer needs to take ownership of the code produced through vibe coding.
It is something the government recognises in its guidance for AI coding assistants. GDS states that the responsible use of AI coding assistants requires the programmer to understand the resulting code and take sole responsibility for any changes.