Live data from Hacker News

Vibe Coding is not an excuse for low-quality work

addyo.substack.com

171–180 of 213 posts

Re: Vibe Coding is not an excuse for low-quality work

#171
post #169

Earlier quoted context omitted.

I'd like to know which app and model you were using, along with the prompts. We have had a steep learning curve in prompt preparation (what we're doing is certainly not engineering), but Claude Code is now one-shotting viable PRs in our legacy codebases that are, well, good. Saying LLMs are only good for boilerplate acceleration is so far from my experience that it sounds absurd.

LLMs don’t even understand fucking TypeScript, which you would expect a computer program to be able to understand. I can’t get it to write valid Drizzle code to save my life, it will confidently hallucinate method imports that don’t even exist.

fucking real, i've had claude code make obvious syntax errors in C# by declaring a tuple as `var (a, string b)` which i thought we were past.

Re: Vibe Coding is not an excuse for low-quality work

#172
post #18

This all reminds me a lot of the early 2000's, when big corporations thought they could save a lot of money by outsourcing development work to low-income countries and have their expensive in-house engineers only write specifications. Turns out most of those outsourcing parties won't truly understand the core ideas behind the system you're trying to build, won't think outside the box and make corrections where necess…

Software is going to completely change. The writing is on the wall, it's just a matter of who can step back to see it. Giga-projects with 50k, 100k, 500K, lines of code are going to get decimated. By and large these programs are written to capture large audiences by offering a massive feature set. But how often is any one user ever actually needing those 100k LOC? If LLMs can start nailing 5K LOC projects pretty reli…

You are absolutely right

Because, as we all know, what is important about coding is outputting lines of code.

This is the main difficulty, this is were IA will change the game forever.

Thinking about the code you write, that's worthless, do not do that. Improving a large code base ? Again, no need to think to do that. Just inject random lines of code and it will do the trick.

Of course, in a world where your code has no value because it's just a copy/paste from elsewhere that has a low lifetime expectancy, IA is shinning.

But if you want something a bit more useful, a bit more clever, a bit more adapted to your use case, IA sucks. Because IA do not think.

IA is a threat to dev that do not think. Good ridance, they won't be missed.

Re: Vibe Coding is not an excuse for low-quality work

#173
post #134

The hype levels are so overwhelming that AI coding could never hope to meet them. I've tried having a highly-ranked AI coding app write unit tests for a relatively complex codebase. 80% of the generated test cases failed. But an experienced human such as myself could use those as a starting point since it took care of some of the tedious boilerplate. It genuinely saved me some time and annoyance, but could never hope…

There's a difference between AI assisted "vibe coding" and what I’ll call (for now) "craft coding."

This isn’t a movement or a manifesto. I’m not trying to coin a term or draw a line in the sand. I just want to articulate something I care about, now that AI-assisted coding is becoming so common.

The phrase “vibe coding” already is a "thing", if not well defined. It’s been tossed around to describe a casual, improvisational approach to programming with AI tools. Sometimes it’s playful and exploratory - which is fine in personal, low-stakes settings. But when vibe coding crosses into production software or educational tools without critical thought and human review, it can become actively harmful.

I’ve seen definitions of vibe coding that outright celebrate not reading the generated code. Or that dismiss the need to understand what the code does — as long as it runs. That’s where I draw a hard line. If you’re unwilling to engage with what you’re building, you’re not just missing the point — you’re potentially creating brittle, inscrutable systems that no one can maintain, not even you.

It’s the kind of anti-intellectual aversion to thinking for yourself that leads you to Vibe Code a CyberTruck of an app: an aggressive, self-satisfied, inexplicably pointy prison piss pan.

It plows along mindlessly — overconfidently smashed, shot at, and shattered on stage, problems waved off with “a little room for improvement” and “we’ll fix it in post”; then it’s pushed straight into production, barreling under “Full Self-Delusion” mode through crowds of innocent bystanders, slamming at full Boring speed into a tunnel painted on the face of a cliff, bursting into flames, and finally demanding a monthly subscription to extinguish itself.

Vibe Coded CyberApps are insecure thin-skinned auto-crashing cold-rolled steel magnets for hackers, bots, vandals, and graffiti artists.

It’s the kind of city planning where you paint a tunnel directly onto the side of a cliff, floor it like Wile E. Musk, and trust that the laws of physics — or software engineering — will graciously suspend themselves for you.

It's where you slap a “FREE TOLL” sign on a washed-out bridge and call it a feature, not a bug.

By contrast, what I’m calling “craft coding” is about intentionality, comprehension, and coherence. It’s about treating code as something more than a means to an end — something worth shaping with care. That doesn’t mean it’s always elegant or beautiful. Sometimes it’s messy. But even when it’s messy, it’s explainable. You can reason about it. You can teach with it. You can read it six months later and still understand why it’s there.

Craft coding doesn’t require you to be an expert. It requires you to care. It’s a mindset that values:

Understanding what your code does.

Naming things clearly.

Keeping code, comments, and documentation in sync.

Being able to explain a design decision — even if that decision is "this is temporary and kind of gross, but here’s why".

Leaving the campsite cleaner than you found it.

Craft coding has been around a long time before AI-assisted coding. I've been fortunate to read the code of and work with some great Craft Coders. But in order to learn from great Craft Coders, you've got to be willing and eager to read other people's code and documentation, not repelled and appalled by the notion.

But vibe coding has also been around since before the time of LLMs. Tools like Snap! (and before that, Logo) encouraged exploratory, playful, improvisational approaches to programming.

Kids learn a lot by poking around and building things with little upfront planning. That’s not a bad thing — in fact, it’s a great on-ramp to coding. Snap! supports a kind of vibe coding that’s deeply aligned with constructionist education: learning by making, reflecting, iterating.

The same vibe exists in educational simulations like Factorio, SimCity/Micropolis, and The Sims — call it vibe space industry, vibe city planning, vibe architecture, or vibe parenting. You drop some zones, throw up some walls, dig out a swimming pool, tweak a slider, pop out some babies, see what happens. It’s empowering and often inspiring.

But you don’t want to live in a city you vibe-mayored in SimCity, with a vibe-tunneled Boring Company loop, or ride a vibe-planned HyperLoop, or board a vibe-engineered rocket operating under “Full Self-Delusion” mode, held together with PowerPoint and optimism, headed for a Rapid Unscheduled Disassembly.

The road from vibe coding to craft coding is a natural one. You start by exploring. Then you get curious. You want to understand more. You want your code to be shareable, readable, fixable. You want to build things you’re proud of, and that others can build on.

This is especially relevant now because AI-assisted coding is amplifying both the good and the bad. Tools like Cursor and Copilot can accelerate comprehension, or they can accelerate incoherence. They can help you learn faster, or help you skip learning entirely. It depends on how you use them.

But used with intention, LLMs can support craft coding, as a "coherence engine" rather than a "chaos reactor". They can serve as a kind of coherence engine — helping you align code with documentation, keep multi-dialect implementations in sync, and build multi-resolution natural language explanations of your design. They’re not just code generators. They’re context managers, language translators, spaghetti groomers, diff explainers, OCD style critics, grammar police, relentless lint pickers, code and documentation searchers and summarizers, and conversation partners. And if you treat them that way — as tools to reinforce clarity and coherence — they can be an extraordinary asset.

So this isn’t about gatekeeping. I’m not saying vibe coders aren’t welcome. I’m saying: if you’re interested in the practice of craft coding — in learning, building, and maintaining systems that make sense — then you’ll probably want something more than vibes.

And if you’ve got a better name than “craft coding,” I’m all ears. But what matters isn’t the name. It’s the practice.

Re: Vibe Coding is not an excuse for low-quality work

#174
post #131

Earlier quoted context omitted.

His GitHub contributions graph (1,261 contributions in 2024) looks pretty healthy to me. https://github.com/karpathy He spends a lot of time as an educator these days.

his commit messages leave something to be desired > Merge pull request #740 from karpathy/gordicaleksa-fix_dataloader2 > - fix tokenizer omg > - attempt to fix PR > - Merge branch 'fix_dataloader2' of https://github.com/gordicaleksa/llm.c into gordicaleksa-fix_dataloader2

Come on really?

Do you write perfect commit messages every single time on every project you work on?

Re: Vibe Coding is not an excuse for low-quality work

#175
post #156

Earlier quoted context omitted.

I disagree that coding doesn’t have regulation. If you have never developed code in a professionally regulated industry such as Airworthiness then you haven’t been exposed yet to an area that requires rigorous process. There are regulated areas where software is regulated. I have DIY’d an addition onto my house with professionally architected blueprints and engineering seal. During various stages, I would call the Ci…

All true but tell the average programmer that you think their industry should be regulated and they should potentially be held liable for their code. This is not a popular opinion on software development circles - unless you're already in one of those regulated fields, like where a software engineer (a literal accredited engineer) is required. But it's been an increasingly common talking point from a lot of experts.…

We have to mature as an industry. Things like not staying up to date on third party dependencies, not including cybersecurity as part of the build pipeline, lack of static and dynamic analysis, not encrypting at rest secrets, etc

It is already costing millions of dollars and it’s just accepted.

Re: Vibe Coding is not an excuse for low-quality work

#176

Earlier quoted context omitted.

I think this erratic manner of trying to find the correct way is the issue. I am currently nearing my 2nd year at a company A in my industry, and while I did know they all kinda suck in their own special way, I honestly had no idea it was this bad until I had to try to make this craziness somehow work for us. Even if there are standards, I do not see people following them. Last year, the one girl, who did seem to try…

> Last year, the one girl, who did seem to try to follow some common sense approach, got fired for effectively using common sense against big boss wishes. What did your manager say when you said this to them?

Sigh, sadly, I didn't, because I found out largely after the fact and, more amusingly, after record profit year at the company with the project in question clearly being a major part of everyone's goals ( not mine, I was kinda roped in at the last stages ).

Re: Vibe Coding is not an excuse for low-quality work

#177

Earlier quoted context omitted.

Software is going to completely change. The writing is on the wall, it's just a matter of who can step back to see it. Giga-projects with 50k, 100k, 500K, lines of code are going to get decimated. By and large these programs are written to capture large audiences by offering a massive feature set. But how often is any one user ever actually needing those 100k LOC? If LLMs can start nailing 5K LOC projects pretty reli…

Complexity is going up rather than down. Companies already solve simple problems with spreadsheets.

The spreadsheet is the hammer or the white collar office worker.

Re: Vibe Coding is not an excuse for low-quality work

#178
post #66
post #51

Earlier quoted context omitted.

I wrote about this last month: "Not all AI-assisted programming is vibe coding" - https://simonwillison.net/2025/Mar/19/vibe-coding/ Vibe coding is when you don't review the code at all. If you're using LLMs to help you write code but you're actually reviewing what they produce (and iterating on it) that's not vibe coding any more. This battle is almost certainly lost already, but dammit I'm gonna keep fighting anywa…

We do need a simple term for "used AI to write code (semi)autonomously, but checked and/or tweaked the result and I care about the quality". Vibe-but-verify? Faux-Vibe? AiPair? (... I'll see myself out...)

Visual Studio with intellisense

Re: Vibe Coding is not an excuse for low-quality work

#179
post #51
post #5

So what have we redefined vibe coding to mean exactly? The original tweet[1] talked very specifically about not caring about quality, just accepting whatever code the AI produces blindly, as long as you get the black box output you're looking for, and just randomly try again if you didn't. Are people now using this term to mean "giving an AI agent broad tasks"? [1] https://x.com/karpathy/status/1886192184808149383?la…

I wrote about this last month: "Not all AI-assisted programming is vibe coding" - https://simonwillison.net/2025/Mar/19/vibe-coding/ Vibe coding is when you don't review the code at all. If you're using LLMs to help you write code but you're actually reviewing what they produce (and iterating on it) that's not vibe coding any more. This battle is almost certainly lost already, but dammit I'm gonna keep fighting anywa…

I don't really think it's that people couldn't be bothered to read the tweet. It's that vibe coding is very good term but a niche activity. Meanwhile there's a much less niche activity that people would like a name for. I think if we want to save the term for the niche activity we'd need to invent a good one for the less niche activity.

Re: Vibe Coding is not an excuse for low-quality work

#180
post #134

The hype levels are so overwhelming that AI coding could never hope to meet them. I've tried having a highly-ranked AI coding app write unit tests for a relatively complex codebase. 80% of the generated test cases failed. But an experienced human such as myself could use those as a starting point since it took care of some of the tedious boilerplate. It genuinely saved me some time and annoyance, but could never hope…

I do somewhat worry that AI will harm language development.

Boilerplate… is bad, right? If our languages were more elegant, we’d need less of it. It is necessary because things don’t have sane defaults or sufficient abstraction.

In particular, if the AI is able to “guess” what boilerplate you wanted, that boilerplate ought to be knowable beforehand (because the AI is not actually guessing, it is a deterministic set of rules where you type things and programs come out; it is a programming language, albeit a weirdly defined one).

Post reply on HN