
Since I started writing about vibe coding, the most common pushback I get (mostly from the developer part of my brain arguing with itself) is: “But is it really coding?” I touched on this in my earlier post about vibe coding, but I think the comparison deserves a deeper look.
So I asked Claude to help me think through this properly. What exactly is different, what is the same, and when should you use which approach?
Me: “Compare vibe coding and traditional coding like you are explaining it to a developer who is skeptical.”
Claude structured the comparison around five dimensions, and I thought it was a useful framework.
1. The Input
Traditional coding: You write precise instructions in a programming language. Every variable name, every function call, every semicolon is a deliberate choice. The input is code.
Vibe coding: You describe what you want in natural language. “Set up a WordPress blog with SSL on this server.” “Write a post about SEO basics.” The input is intent.
The shift is from how to what. In traditional coding, you specify how to accomplish something step by step. In vibe coding, you specify what you want and let the AI figure out the how.
2. The Feedback Loop
Traditional coding: Write code → run it → see error → read error message → fix code → repeat. The feedback comes from the compiler or runtime.
Vibe coding: Describe intent → AI generates output → review output → give feedback in natural language → AI revises → repeat. The feedback comes from you, in plain language.
This is a fundamental difference. In traditional coding, you debug by understanding error messages and tracing through code. In vibe coding, you debug by saying “that is not what I wanted, here is what is wrong” and letting the AI figure out the technical fix.
Real example from this blog: when the site threw a 500 error after setup, I did not read the PHP error log myself. I took a screenshot and sent it to Claude. Claude read the log, identified the escaped character issue in wp-config.php, and fixed it. I understood the problem at a high level (“the config file has a syntax error”) without needing to understand the specific PHP parsing issue.
3. The Knowledge Required
Traditional coding: You need to know the programming language, the framework, the libraries, the tools, and the best practices. The more you know, the faster and better you code.
Vibe coding: You need to know what you want to build, what good output looks like, and enough about the domain to evaluate the AI’s work. You do not necessarily need to know the specific implementation details.
This is where the “is it really coding?” debate lives. A traditional developer would argue that understanding the implementation is essential. A vibe coder would argue that understanding the problem and evaluating the solution is what matters.
My take: both are right, depending on context. For production systems at work, I want to understand every line. For a side project blog, understanding the overall architecture is enough.
4. The Speed
Traditional coding: Measured in hours and days. A full WordPress setup with SSL, SEO, and content would take a weekend at minimum.
Vibe coding: Measured in minutes and hours. The same setup took 30 minutes.
This is not even close. For well-defined tasks where the AI has strong training data (like setting up common web stacks), vibe coding is 10-50x faster. The gap narrows for novel or complex problems, but for standard development work, the speed difference is dramatic.
5. The Risk Profile
Traditional coding: You understand what you built because you built it line by line. Bugs are your bugs, and you know where to look. The risk is known.
Vibe coding: The AI might introduce subtle issues you do not catch because you did not write the code yourself. Security vulnerabilities, performance problems, or logical errors could hide in AI-generated code. The risk is partially unknown.
This is the strongest argument against vibe coding for anything serious. For a blog? The risk is minimal — the worst case is the site goes down and I ask Claude to fix it. For a banking application? You absolutely need to understand and audit every line.
When to Use Which
| Scenario | Best Approach | Why |
|---|---|---|
| Side projects | Vibe coding | Speed matters more than perfection |
| Learning a new technology | Traditional first, then vibe | You need to understand before you can evaluate |
| Production code at work | Hybrid | AI can draft, but you must review and understand |
| Security-critical systems | Traditional | Cannot afford unknown risks |
| Prototyping | Vibe coding | Throw-away code that just needs to work |
| Content creation | Vibe coding | The output is text, not system infrastructure |
| Infrastructure setup | Vibe coding | Well-documented tasks with clear best practices |
They Are Not Opposites
The more I think about it, the more I realize the framing of “vibe coding vs traditional coding” is wrong. They are not competing approaches — they are different tools for different situations. The best developers in 2026 will be the ones who know when to use each.
I still write traditional code at my day job. I still read documentation. I still debug with print statements and breakpoints. But for side projects, content creation, and infrastructure tasks, vibe coding saves me hours every week.
The question is not “which is better?” It is “which is appropriate right now?”
How This Post Was Made
I told Claude: “I want a proper comparison between vibe coding and traditional coding. Structure it so a skeptical developer would find it fair.” Claude suggested the five-dimension framework, which I liked. I asked it to add the comparison table and the “they are not opposites” conclusion, because I think the either-or framing misses the point.
This post was written with Claude AI. I provided the direction, topic, and key points in Korean — Claude turned it into the article you just read.