The cult of vibe coding is dogfooding run amok
Criticism of “vibe coding” – relying on large language models to generate entire codebases with minimal human review – has intensified after leaked source from a popular AI-powered coding tool revealed sprawling, messy internals. Commenters argue over whether this proves AI-driven development is irresponsible malpractice or simply the latest iteration of “worse is better,” where shipping fast and riding a hype wave matters more than clean architecture. The thread repeatedly returns to long‑term maintainability, accountability, and where to draw the line between helpful automation and blind delegation in safety‑critical or complex systems.
What “vibe coding” means in practice
- Used loosely to mean: giving natural‑language goals to an LLM/agent and letting it write most or all of the code, sometimes without reading it.
- Many commenters distinguish a spectrum: from “AI as autocomplete” to “AI writes whole subsystems from a spec I barely understand”.
- Some see “vibe coding” as fine for prototypes, personal tools, or low‑stakes features; others already use it heavily for production with guardrails (tests, strong typing, QA).
AI as abstraction vs fundamentally different tool
- One camp: AI is “just another abstraction layer”, like moving from assembly to high‑level languages.
- Counterpoints:
- LLMs are non‑deterministic and opaque; traditional abstractions are deterministic and well‑specified.
- Models “guess” intent, invent behavior, and can’t reliably explain failures. That’s not a compiler.
- Natural language specs are inherently ambiguous; this limits reliability.
Code quality vs product success
- Strong evidence from leaked Claude Code source: messy, duplicated, “spaghetti” code can still underpin a very popular product.
- Some argue this simply confirms a long‑standing reality: many successful commercial codebases are ugly; users care about features, not elegance.
- Others stress long‑term costs: tech debt compounds, maintenance grinds to a halt, and LLMs struggle even more on convoluted code.
Maintainability, prompts, and non‑determinism
- Worry: agents churn out huge, hard‑to‑reason‑about diffs; debugging becomes vastly harder than initial generation.
- Proposed alternative: treat prompts/specs and tests as the primary artifact, regenerate code as needed, maybe store prompts in version control.
- Critics note LLM non‑determinism and incomplete tests mean successive regenerations can silently introduce new bugs.
Safety, accountability, and critical systems
- Many insist vibe coding is unacceptable for safety‑critical or financial systems; you must understand and review the code.
- Debate over accountability:
- One side: humans triggering the LLM are responsible by default.
- Other side: in practice, organizations will use LLMs as “accountability sinks” and blame the tool.
Workflows, “AI levels”, and best practices
- People reference informal “AI levels” from “human‑coded with light assist” up to “spec‑only, bots do all coding”.
- Several engineers report comfort around mid‑levels: AI writes code they can fully understand and test, with humans steering architecture and reviewing diffs.
- Consensus among cautious users: AI is powerful for refactors, lint‑like cleanup, boilerplate, and exploration; risky when used as an unchecked code factory.