Is programming an art, a science, or a bit of both? Some code 'by feel,' but let's be careful with labels.
In 30 seconds
01Vibe coding means programming intuitively, without standard engineering rigor.
02It's not inherently problematic, but it shouldn't be confused with true software engineering.
→
💡
What this means for you
For us mere mortals, this means not all software is built with the same engineering solidity. A 'vibe-coded' app might be a bit more unpredictable than one designed like a bridge.
Thought coding was strictly human territory? Surprise: artificial intelligence now writes code better than many developers, but there's a catch.
·2 min·1·Intermediate
03This distinction is crucial for long-term project quality, maintainability, and scalability.
0101
What is "vibe coding" and who uses it?
'Vibe coding' is a programming approach that heavily relies on intuition and the creative flow of the moment. Imagine an artist painting without a precise sketch, just following inspiration. Many developers use 'vibe coding' for rapid prototypes or to solve immediate problems, where speed matters more than meticulous planning.
This approach is perfect for quick experiments or for whipping up a small utility to scratch an itch. There's no formal design phase, no complex flowcharts, or obsessive documentation. You open the editor, write code until it works, and maybe tweak things on the fly. It's a bit like fixing your car with a screwdriver and duct tape.
0202
Why isn't it "engineering"?
Despite the appeal of spontaneous programming, 'vibe coding' doesn't qualify as software engineering. Software engineering, by definition, involves applying systematic, disciplined, and quantifiable principles to the development, operation, and maintenance of software. We're talking about processes, standards, rigorous testing, and long-term planning.
📬 Enjoying this article?
Get the best AI news every week, straight to your inbox.
A software engineer designs, documents, and tests code with scalability, security, and maintainability in mind. It's not just about making something work, but making it work well, robustly, and for years. 'Vibe coding' often skips these steps, focusing on the immediate result. It's the difference between building a sandcastle and a reinforced concrete bridge, you know?
0303
Why should this difference matter to us?
The distinction is fundamental for the health of software projects, especially large and complex ones. 'Vibe-coded' code can be hard for other team members to understand, or worse, for anyone who has to touch it six months later. The lack of engineering rigor in 'vibe coding' can lead to higher maintenance costs and scalability difficulties for long-term projects.
When a company promises "engineered" software, you expect a certain quality and reliability. If it's instead the result of pure momentary inspiration, the chances of bugs and future problems increase. It's not that "vibe coding" is always bad, but calling it "engineering" is like saying a chef who improvises an omelet is a gastronomic architect. There's an abyss of method and discipline in between.