- Didier's Newsletter
- Posts
- Can we kill the term "vibe coding"?
Can we kill the term "vibe coding"?
Why dismissive language is holding back serious progress in AI-assisted development.

Let's be honest, "vibe coding" is a terrible term that needs to die. It makes a thoughtful and structured process seem casual and aimless, when in reality, it’s about deliberate abstraction and smart task delegation.
What's really happening
When someone says they are "vibe coding" they aren't just throwing code at a wall and hoping something sticks. They're operating at a higher level of abstraction, defining outcomes and delegating implementation details to AI systems.
This is strategic work allocation, not mystical programming.
Think about it this way: if I ask you to "get something done" and you deliver exactly what I need, I'm not doing "vibe working". I'm managing, delegating, and operating at the appropriate level of abstraction for my role.
The same principle applies here.
Coding has always been about outcomes
Here's the thing nobody talks about: no one codes for the sake of coding.
Coding is a means to an end.
There's always a goal, always a problem to solve, always a deliverable to create. Whether you're writing assembly by hand or describing requirements to an AI, you're still pursuing the same fundamental objective.
The difference isn't in the seriousness or legitimacy of the work, it's in the level of abstraction you're operating at.
What we're actually doing
When we delegate coding tasks to AI, we're:
Defining clear requirements and constraints
Specifying expected outcomes and success criteria
Monitoring and validating the implementation
Iterating and refining based on results
This isn't "vibing".
This is structured problem-solving at a higher level of abstraction.
It's the natural evolution of how we interact with increasingly sophisticated tools.
Why the Term Matters
Language shapes perception. When we call this "vibe coding" we're undermining the legitimacy of a genuine shift in how software development works.
We're making it sound like guesswork instead of strategic delegation.
This matters because:
It minimizes the skill required to effectively delegate to AI systems
It suggests randomness when the process is actually quite deliberate
It creates resistance from developers who see it as "not real coding"
It obscures the real value of working at higher levels of abstraction
A better framework
Instead of "vibe coding", let's talk about what this really is:
Outcome-driven development: You define what you want to achieve, specify the constraints and requirements, and delegate the implementation details to the most appropriate resource—whether that's a human developer, an AI system, or a combination of both.
Abstraction-level management: You're choosing to operate at the level where you can be most effective, rather than getting bogged down in implementation details that can be handled elsewhere.
Strategic delegation: You're allocating work to the resources best suited to handle it efficiently and effectively.
The real question
The question isn't whether this approach is legitimate, it obviously is.
The question is whether we're going to embrace more accurate language that reflects the sophistication of what we're actually doing, or continue to use terms that make it sound like we're just "vibing" our way through software development.
Coding has always been about solving problems and creating value. The tools and methods evolve, but the fundamental purpose remains the same. It's time our language evolved too.
We should kill the term "vibe coding" and start talking about what this really is: the future of software development.