Vibe Coding: A Developer’s Perspective
Will generative AI tools save software development?
I’ve been in software development for over two decades now, but my love for coding started way before that: pretty much when I was a kid messing around with computers for fun. Since then, I’ve done a bit of everything: programming, product development, management… but no matter what role I’ve had, I’ve always kept my hands on the code. Coding isn’t just work for me — it’s something I genuinely enjoy. I even spend a good chunk of my free time writing code just because it’s fun.
Looking back, it’s amazing to see how much the world of software has evolved. The tools we use today—modern code editors, powerful development environments, and a thriving, global community — have made building software faster and more efficient than ever. This progress has unlocked the door to new approaches like microservices, GitOps, or serverless cloud computing.
But with all these new approaches comes more complexity. Tech has become so broad and specialized that it’s almost impossible for one person to master everything from the user interface to backend systems and infrastructure. That’s created a big demand for experienced people with both breadth and depth in their knowledge. Unfortunately, there just aren’t enough of them out there.
As the work efficiency provided by tools grows more slowly than the complexity we need to tackle in software, the challenge becomes clear: we need to make development tools even more powerful and intuitive. Ideally, these tools should not only boost productivity for experienced developers but also help those with less formal training or experience contribute effectively. The goal is to lower the barrier to entry without lowering the quality of the work.
All Things AI
Artificial intelligence (AI) tools are among the most talked-about innovations today. As a developer, I’ve encountered AI tools quite a bit in my work, and chances are, you have too, no matter what your job is. AI buttons have been popping up in almost every popular application, and it seems like not including a chatbot in a software product instantly makes it feel outdated. Product developers are scrambling to figure out how to add AI to their offerings, while managers are wondering how many positions can be cut.
AI generative tools, large language models (LLMs) in particular, are the latest big thing — and they’re not going anywhere. Over time, they’ll likely become part of our everyday work, much like other AI tools already have. (Most of us don’t even think of search engines or spam filters as “AI” anymore, though that’s exactly what they are.)
The new trend that’s gained momentum in the past few months is vibe coding, where developers simply provide prompts in a natural language to an AI assistant, then copy and tweak the code it generates.
The promise of this approach is significant: It aims to reduce the need for deep technical expertise, making software development more accessible to a wider range of people. This vision of faster and cheaper development has been embraced enthusiastically by CTOs and IT managers, as it could solve the age-old problem of a shortage of skilled developers and the high costs of building software [1].
But, as with any new trend, the question arises: Are these hopes truly justified?
Interestingly, though, most developers aren’t exactly jumping for joy. And it’s not because they’re worried about losing their jobs. The real concern is something a bit different: they’re worried about the potential mess that AI could create for the industry as a whole.
Don’t get me wrong, I’m a huge fan of AI. I’ve been fascinated by it for as long as I can remember. I spent hours playing with ChatGPT and other chatbots when they were first made available to the public. At first, I was blown away by what they could do. But then… well, I started to realize that, in many ways, they were kind of disappointing…
Just Another Tool
Generative AI tools like ChatGPT are designed to work with natural language, and they’re incredibly good at it. In fact, they’re so good that it’s easy to forget what they really are. The responses feel natural, coherent, and even insightful, which can give the impression you’re talking to something that truly understands you. But that’s an illusion. These tools don’t actually know what they’re talking about. They don’t reason, they don’t think. They’re just very good at predicting what text should come next.
The same applies when they generate code. They can often produce working code for common problems. But again, they don’t understand the code they generate.
When you ask an AI to explain a piece of code it just wrote, the explanation, even if it sounds convincing, it’s often not connected to the code in any meaningful way [2]. That’s because the answer isn’t based on any real analysis—it’s just more language prediction, generated independently from the code itself.
Try giving ChatGPT a task in a programming language it’s not familiar with, and it produces poor-quality code. Ask it to explain that code, and you’ll likely get an explanation that doesn’t actually match what was written. The two parts—the code and the explanation — are produced separately, using the same statistical process instead of any kind of reasoning.
That said, AI tools can still be genuinely helpful. They’re great at reducing repetitive work, like writing boilerplate code, and can offer helpful suggestions you might not have thought of. They can also serve as a kind of smart rubber duck—someone (or something) you can talk to in order to clarify your thinking or debug a tricky problem [3]. They’re not rational, and they’re definitely not human, but used thoughtfully, they can be valuable tools in a developer’s workflow.
AI Considered Harmful?
No matter how good AI tools become at writing code, they still address only a fraction of what developers actually do. While it might seem like coding is the core of the job, the truth is that writing code often takes up a surprisingly small portion of a developer’s time. On a good day, I might spend up to 50% of my time coding — but that’s more the exception than the rule. Most of the work involves problem-solving, system design, integration, and yes, sitting in meetings. Realistically, coding takes up just 10–20% of my work. Even if AI could write code perfectly, it wouldn’t come close to solving the bigger challenges of software development.
In fact, relying too heavily on AI code generation might not solve the talent shortage at all—it could make things worse. Copying and pasting code without understanding it can quickly lead to poor-quality software riddled with subtle errors. And if the people responsible for maintaining that code don’t fully understand it, issues become harder to find and fix, leading to potentially serious consequences.
But perhaps the biggest risk is to the next generation of developers. If junior programmers grow up relying on AI to write their code, there’s a danger that they’ll miss out on learning how to think critically, solve problems creatively, and ask tough questions. These are the skills that lead to breakthroughs, not just in software, but in how we approach problems in general. Juniors might not always write perfect code, but they bring fresh ideas, curiosity, and a willingness to challenge the status quo.
The worry is that if AI tools offer fast, confident answers (regardless of whether they’re right or wrong), young developers might stop asking why. And once curiosity fades, learning stops.
Even worse, blindly merged code will feed into future AI training data. Its poor quality will lead to worse models, which in turn produce even more flawed code, and so the downward spiral continues. If we’re not careful, we could end up with a future where code becomes so broken and unintelligible that no one can understand it anymore.
That’s not the future we want. We should use AI as a tool, not a salvation. We must keep learning, questioning, and thinking for ourselves. After all, that’s what humans still do best.
Understanding the big picture is an important ability no AI tool can supply. Learn about how software is created in my book
🌱 Software as a Garten: Software Development for Non-Developers 🌱
It’s a friendly, non-technical guide to software development for anyone who works in the field and wants to understand what developers are talking about — with enough detail to see the big picture, but not make your head spin.
Images created by Leonardo.ai