10 ms·
Vibe Coding is not an excuse for low-quality work
- neural_thing 2y agoWhat percentage of companies can hire an engineer who writes better code than o3?
- DaSHacka 2y ago100%
- neural_thing 2y agohighly doubt that
- biglyburrito 2y agoThen why ask the question, if you're so sure of the answer?
- kbelder 2y agoI'm a big booster of AI, but this doesn't even make sense. Any project using even the very best code generator in existence is going to need to be stewarded and tightly monitored by a competent programmer. AI is miraculous, but can't do crap reliably on it's own.
- vunderba 2y agoGiven that o3 just spun its wheels endlessly trying to correct a CSS issue by suggesting to create a "tailwind.config.X" file despite being given the package JSON which contained a clear reference to Tailwind 4x - I'd say any engineer capable of reading and learning from basic documentation. For reference, Tailwind 4 will not read in config files by default (which is the older behavior) - the encouraged practice is to configure customizations directly in the CSS file where you import Tailwind itself.
- pyfon 2y agoIs breaking API changes how we defeat the killer robots?
- herbst 2y agoTell the AI to comment above the include why it uses a specific version, ask it to document the version and it's specific quirks after fixing it with it. Not sure how o3 is generally at coding, but this kind of meta information works well for me to avoid version missmatches with Claude and Gemini It's kinda important that the AI finds the issues itself so it can properly document it in her own words.
- only-one1701 2y agoThis question isn’t useful without context. But yes the answer is probably 100%.
- Applejinx 2y agoWhatever percentage that can hire an engineer at all. This won't be 100%, but that'll be the companies who're able to hire somebody to parse the problems that arise. Without that engineer, they'll be doing what OP calls 'vibe coding', meaning they'll neither understand nor be able to fix when the whole thing blows up.
- bigstrat2003 2y agoIt is most definitely 100%. Any competent programmer can write code better than the current AI tools.
- nivenclay 2y ago"The big takeaway is that speed means nothing without quality" - I feel like this is not true in 'move fast and break things' ideology
- frereubu 2y ago> treat the AI like a super-speedy but junior developer on your team That sounds like it's going to take a lot more time that just writing the code for an experienced developer. The issue with AI for me is that it produces plausible-looking code which requires a lot of attention to read through, because things that look superficially "right", including any justification in code comments, can actually have really problematic flaws.
- packetlost 2y agoI've found utility + speed go up the more conservative (in number of lines) the model generates. If it only completed a line it's much more likely to be exactly what I was about to type
- captainbland 2y agoI remember when I'd rushed a piece of work when studying, I had a lecturer who told us something like: There are a few kinds of developers: good, bad, slow and fast. Everyone wants to be a good developer but a fast and bad developer is worse than a slow and bad developer because they end up doing so much damage.
- selfselfgo 2y ago[dead]
- master_crab 2y agoHe could have been copying General Kurt Hammerstein. Paraphrasing here: There are four kinds of military officers: smart and lazy, smart and hard working, dumb and hardworking, dumb and lazy. Keep the dumb and hardworking away from any high level position. They actively make things worse. Dumb and lazy are useful for simple tasks with oversight. Smart and hardworking are excellent for high level staff and analyst positions. The Smart and Lazy should be saved for high level command. They expend only the energy necessary to get the job done and then focus on the next important task.
- herbst 2y agoExcept you ask it to not to. Sure it's far from perfect but honestly that is not an issue. If you ask Claude to study and document the codebase and then write unit tests I am sure there are only very few broken ones, less hallucination more like real small bugs.
- SCdF 2y agoSo 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?lang=en https://x.com/karpathy/status/1886192184808149383?lang=en
- spaceywilly 2y agoFrom that tweet: > I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it That sums up vibe coding, imo. The article talks about code quality with vibe coding, but I think that misses the point. The real problem is code knowledge. When a vibe coder inevitably needs to debug something, if they have no idea what any of the code does, or why it is the way it is, they are not going to have a good time. Sure they can copy paste the error into the LLM and hope for the best, but what happens when that doesn’t fix it? I’ve already had to spend hours at work tracking down bugs that ending up being in there because someone just blindly accepted the code an LLM wrote, I fear it’s only going to get worse.
- benmanns 2y agoLike you, I’m far too risk averse to not fact check everything an LLM outputs, but I’ve also fixed bugs that have been present for 5+ years. Maybe at a certain point you can just wait for the next generation of model to fix the bugs. And wait for the generation after that to fix the newly introduced and/or more subtle bugs.
- mr_mitm 2y agoAlso from the tweet; > It's not too bad for throwaway weekend projects, but still quite amusing You were never supposed to vibe code on serious projects.
- fma 2y ago
- alphazard 2y agoDifferent people clearly mean different things when they talk about software quality. There is quality as perceived by the user: few bugs, accurately models the problem they have, no more complicated than necessary, etc. Then there is this other notion of quality as something to do with how the software is built. How neat and clear it is. How easy it is to extend or change. The first kind of quality is the only kind that matters in the end. The second kind has mattered a lot up until now because of how involved humans are in typing up and editing software. It doesn't need to matter going forward. To a machine, the entire application can be rewritten just as easily as making a small change. I would gladly give up all semblance of the second kind of quality in exchange for formal specifications and testing methods, which an AI goes through the trouble of satisfying for me. Concepts and models matter in the problem domain (assuming humans are the ones using the software), but they will increasingly have no place in the solution domain.
- bluefirebrand 2y ago> The first kind of quality is the only kind that matters in the end. How easy it is to maintain and extend does absolutely matter, in a world where software is constantly growing and evolving and never "finished"
- sightbroke 2y agoI'm not disagreeing with you. Just an observation though: There seems to be a world in software where "it works" well enough to grow a large user base to achieve a a large valuation and then dip out is also a viable option. Growing/evolving the code does not matter because the product no longer matters after the founders have made a large sum of money.
- t-writescode 2y agoI hear what you're saying; but the implications seem ... net harmful? If you're actively hacking something together with the intent of boosting a valuation, selling your company and GTFOing before your purchasers figure out the bag of unmaintainable garbage you've sold them, that ... You're harming: * your customers who trusted you * the people that purchased your product I think "grift" is a good term (GPT recommended 'predatory exit' as an alternative) for what a team that's done that has done. There’s nothing wrong with iterating fast or building MVPs. But when teams knowingly pass off a brittle mess to others, they’ve stopped building products and started selling lies.
- cjonas 2y agoIt totally depends on the use case. As a consultant the majority of my work is around business process automation and integrating cloud systems. We build a lot of small "applications" that change almost constantly. The number of concurrent users is low, the lifespan of the software typically short and to justify the effort has to be done quickly and efficiently. It's 100% "value engineering". AI agent pairing has been an absolute game changer. It can single shot most requirements and refactors. I basically am just writing technical requirements and reading pull requests all day now. I actually think the quality of the output has gone up significantly because you can just accomplish much more in the same limited budget.
- pyfon 2y agoYes not all coding is equal. A bit like not all wordsmithing is equal. A presidential speech is not the same as an airplane safety announcement, even they can both be encoded as words.
- ndepoel 2y agoThis 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 necessary, and will just build the thing exactly as written in the spec. The result being that to get the end product you want, the spec needs to be so finely detailed and refined that by the time you get both specification and implementation to the desired quality level, it would have been the same amount of effort (and probably less time and frustration) to just build the system in-house. Of course outsourcing software development hasn't gone away, but it hasn't become anywhere near as prevalent and dominant as its proponents would've had you believe. I see the same happening with AI coding - it has its place, certainly for prototyping and quick-and-dirty solutions - but it cannot and will not truly replace human understanding, ingenuity, creativity and insight.
- cactusfrog 2y agoDeleted
- eastbound 2y agoOh yes[1] Then remember when we said tests should be the specs? Then we said the end users are the specs? All of them can be construed as a joke in our erratic search for the correct way to write software without those $150k developers that seem to be the only ones getting the job done, assuming they have a competent management hierarchy and stock options incentives. [1] We have a waterfall software and I wonder whether Crockford’s license “JSON should be used for good, not evil” was meant for me
- deleted 2y ago[deleted]
- datavirtue 2y agoVibe seo vibe seo vibe seo vibe seo
- rzzzt 2y agoCode vibing.
- saagarjha 2y agoIf you use AI to make low-quality work, then you made low-quality work. It’s pretty simple.
- AlexCoventry 2y agoNot an excuse, but maybe an explanation. I was just talking to someone who was bragging about getting the cost of coding down to a penny a line. Seems like an insane metric to use, to me, since it takes no account of features developed or maintainability/modifiability.
- forgotTheLast 2y ago>In essence, let the AI handle the grunt work, not the brain work. And importantly make sure the user doing the brain work has the experience and support to do it properly. The XY problem can cause a lot of damage with AI agents that implement what's asked of them instead of asking why.
- danenania 2y agoI built Plandex[1] to try to enable a more sustainable approach to vibe coding. It writes all of the model's changes to a cumulative version-controlled sandbox by default, which in my experience helps a lot to address many of the points raised in the article. While there are still categories of tasks I'd rather do myself than vibe code, the default-sandbox approach makes it feel a lot less risky to give something a shot. On another note, a related but somewhat different technique that I think is still under-appreciated is "vibe debugging", i.e. repeatedly executing commands (builds, tests, typechecks, dependency installs, etc.) until they run successfully. This helps a lot with what imo are some of the most tedious tasks in software development—stuff like getting your webpack server to startup correctly, getting a big C project to compile for the first time, fixing random dependency installation errors, getting your CloudFormation template to deploy without errors, and so on. It's not so much that these tasks are 'difficult' really. They just require a lot of trial-and-error and have a slow feedback loop, which makes them naturally a good fit for AI. I put a lot of focus on execution control in Plandex in order to make it helpful for these kinds of problems. It's built to be transactional—you can apply the changes from the sandbox, run pending commands, and then roll back all changes if the commands fail. You can do this repeatedly, even letting it continue automatically for some number of tries until the commands succeed (or you hit the tries limit). While there are some limitations to the terminal modality in terms of UX, I think this is an area where a CLI-based agent can really shine. 1 - https://github.com/plandex-ai/plandex https://github.com/plandex-ai/plandex
- geor9e 2y agoThis is common sense. The whole article read like they asked ChatGPT to fluff one sentence "review vibe code with a human before pushing to prod" into an entire article.
- tysonworks 2y agoVibe blogging.
- headsupernova 2y agoSo much of this now and so much more coming.
- pyfon 2y agoLooks human written to me. And they didn't use em-dashes when appropriate so that indicates human.
- black_13 2y ago[dead]
- NineWillows 2y agoIt's hard to take anyone seriously who takes the term "vibe coding" this seriously, considering that the whole thing spawned from a casual tongue-in-cheek tweet. I recently saw a job posting for a "Vibe Coder". Nuts.
- cookie_monsta 2y agoI don't mean to be dismissive (here goes, though) but the whole article boils down to one point, and it's one that frightens me that it needs to be repeated so often: use AI as your intern, not your replacement Simple.
- deleted 2y ago[deleted]
- dboreham 2y agoI think all this rests on the unacknowleged fact that most software never goes into production. When you have a choice between paying expensive humans to create software that works vs cheap AI to create software that doesn't, if nobody is ever going to use it, the AI option is the one to pick.
- afiodorov 2y agoI think it is a losing battle. People are energy preserving creatures and we skip paying attention if we can. Because paying attention is effort. Vibe coding is exactly this, low effort development and thus is enticing. Now if we can get away with low effort why shouldn’t we? I am not advocating serious NATO missions to be vibe coded for trajectories, no. When billions are at stake no way. But what if billions are not at stake? What if nothing is? This weekend I added a way to maximise my QApplication app. I just asked Claude code to do it and tested it. It worked. That is all I need for my own app that I use. It’s not that I don’t have any other users but works on my machine is the motto of this specific free and open source app.
- tehjoker 2y agoI for one advocate NATO using vibe coded lowest-bidder technology. It will make the world a safer place.
- afiodorov 2y agoNASA* :D
- Barrin92 2y ago>People are energy preserving creatures and we skip paying attention if we can. Paying attention saves you energy in the long run. In the words of Gus Levy, nothing wrong with being greedy, but there's two types of greed, long term and short term; the latter is stupid. Of course for a throwaway project it's irrelevant by definition. But the problem is in professional work you cannot get away with low effort, you're just pushing your problems to the back and they'll come back with interest. Vibe coding is simply moving your problems to other people, or to yourself at a later point in time.
- afiodorov 2y agoRunning AI itself is not low effort though, far from it at current efficiency levels it burns way more energy to produce outputs than humans. Setting latest advanced models to think about the problem on your behalf doesn't necessarily make it low effort overall. Vibe coding is first and foremost moving some of your problems to the AI and that can be suffice even in professional setting where there's a lot of mundane requests, e.g. setting up slack alerts, running simple data transforms or figuring out one-off data analysis. Maintainability is less of an issue on tasks where it can be done from scratch if need be. If your situation is result-driven and easily verifiable AI-driven solutions are absolutely appropriate.
- dinoqqq 2y agoThis sums it all up: > embrace the vibes, but honor the craft
- OJFord 2y agoLLMs are to software engineering as 3D printers are to mechanical engineering.
- smnplk 2y agoAre today's juniors never gonna reach senior levels because of AI assisted coding ? Do you think AI assisted coding has a negative impact on developer's growth ? Is the need for developers gonna increase in the longterm but decrease in shortterm ? Those are just some of the questions that are in my head lately. I would appreciate other people's opinion.
- achierius 2y agoI think all of this depends. > Do you think AI assisted coding has a negative impact on developer's growth? Almost certainly. Easier to do things the easier way, but you never learn unless you do it the hard way. Maybe that won't matter -- i.e., the skills that one would've learned are now to be subsumed by AI. But as long as humans are needed, it will be necessary to build deep skills and understanding of systems, which AI coding does not seem to give us. > Are today's juniors never gonna reach senior levels because of AI assisted coding? Some definitely will, same as some people today get really good at programming in assembly. Almost certainly fewer will -- at least to what we today consider "senior". > Is the need for developers gonna increase in the longterm but decrease in shortterm? It all depends on the shape of the curve -- how far AI coding will be able to take us, and how fast. It turns out to mostly serve the same purpose as low-code/no-code, where devs are needed to do 'serious' work and mixing the two becomes difficult? I doubt there'll be a slump at all. It turns out to obviate the need for devs entirely, but only for certain common tasks -- or, it speeds up devs across the board by enough that significant double-digit (e.g. 40-50%) percentages of their work is now handled by AI? Then yes I expect we'll see a slump of some degree. But if it's not close to a 2x multiplier I expect we slump back to the first category, given just how much code it's clear there is still to be written. On the other hand, though: if AI continues to advance and actually replaces developers 1-to-1 at lower cost? We're probably in for a sharp exponential and the question isn't how many developer jobs will be left, it's how long humanity has left.
- pyfon 2y ago[flagged]
- outside1234 2y ago“We as a team are still responsible for every line that goes into the repo” You use AI to make a PR? You are still responsible. You code reviewed the PR? Also responsible. The AI is not responsible.
- outside1234 2y agoVibe coding is what we used to call “a hack” It is not software engineering.
- ken47 2y agoThe 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 to replace even the lowliest competent junior dev. That's what AI is good for right now - boilerplate acceleration. But that's clearly not enough to drive the immense transfers of capital that this high ecosystem demands.
- Workaccount2 2y agoAI is to SWEs what self-driving cars (or like features on new cars) are to taxi drivers. A neat thing that may make some basic things a little easier. But it's the wrong perspective. Think instead what a self driving car is to someone who cannot drive. It doesn't matter if it sometimes disengages to have an operator step in or can only handle basic local trips. It's a total game changer. AI is unlocking computers for people who have never written a line of code in their life.
- threeseed 2y agoYour analogy makes no sense. There is no equivalent of an operator who will fix your code if it fails. You're asking someone with zero coding experience to jump in and fix bugs so niche or complex that the LLM is incapable of doing it.
- johnnyanmac 2y agoSure. Who's gonna do it though? This whole year's theme is in fact about de-regulation.
- cjfd 2y ago"Think instead what a self driving car is to someone who cannot drive." It would be a very dangerous thing if said self-driving car crashes ten times every ride.
- anonzzzies 2y agoI mainly use vibe coding to figure out how hard something is to do if I would do it 'for real', so I vibe code working prototypes, often to find out there is no way this is feasible and, more often, finding it is easier than I thought it would be. When I have an issue, I search for a library to solve that issue, but to figure it it does and if it does in a friendly way, I have to try it, so I ask claude to give me my example in that library. I already know something is up if it doesn't work first shot; to me is not a shock that 99.9999% (well that is actually not true of all language ecosystems but the most popular ones) of all libraries out there are total garbage with very strange 'opinionated' abstractions/choices in them that truly suck and actually make some use cases impossible without changing the library itself even though it says in the manual it is possible but without an example. In that case the LLM usually hallucinates a parameter or function that it doesn't have but that is from another library or does not exist at all, ideally needed to implement said use case. LLMs save me a ton of time there and I assume it's low quality as I won't use that exact piece of code anyway, but now I know the effort involved to meet my specific use case.
- interleave 2y agoWanted to say something similar : high-quality code is not an excuse to make something that doesn't "work" (in regards to sales, usefulness, iterations, learning - all for which vibe coding are a perfect fit IMHO)
- jokoon 2y agoMaybe I could introduce vibe cooking, vibe driving, vibe teaching, vibe accounting, vibe plumbing, vibe working.
- szundi 2y ago[dead]
- CRConrad 2y agoFunny, that's all I thought it ever was.
- freddealmeida 2y agoVibe coding for me meant a roll-the-dice approach to building something that world. Never a care for strong architecture or good code standards. Allowing anyone to become an "engineer". A friend of mine, who can't code, used Cursor to build fully functional Nextjs web apps. I was impressed. Vibe coding is a super power for average people. I do think this article fully grasps that change. Using AI to do tasks is not vibe coding. At least to me. When will the first vibe coding book come out I wonder?
- aught 2y agoThe urge to spagetti code is strong but must be denied.