(评论)
(comments)

原始链接: https://news.ycombinator.com/item?id=43739037

这篇Hacker News的讨论主题是“氛围编程”(vibe coding),指的是盲目接受AI生成的代码,而不进行理解或质量检查。评论者们将其与21世纪初的软件外包失败作类比,当时由于过度依赖规格说明书以及外包开发人员缺乏理解,导致了大量低质量代码的产生。 争论的焦点在于“氛围编程”的定义,一些人认为它仅仅是使用AI辅助编程,而另一些人则强调了忽视代码质量和知识的危险性。有人认为,虽然AI擅长原型设计和快速解决方案,但它无法取代人类的创造力和调试能力。也有人建议,对于AI生成的代码,传统的代码质量指标不那么重要,优先考虑功能性和可测试性。普遍共识是,AI生成的代码仍然需要有能力的开发人员进行监督,尤其是在复杂的调试方面。与之形成对比的是,另一种观点认为AI结对编程对于快速、高效的业务流程自动化具有革命性意义,尤其是在不断变化的环境中,速度优先于传统的考量。

相关文章
  • 氛围式编程不是低质量工作的借口。 2025-04-19
  • (评论) 2025-03-22
  • (评论) 2025-03-22
  • (评论) 2025-03-30
  • (评论) 2025-04-15

  • 原文
    Hacker News new | past | comments | ask | show | jobs | submit login
    Vibe Coding is not an excuse for low-quality work (addyo.substack.com)
    27 points by saikatsg 59 minutes ago | hide | past | favorite | 17 comments










    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 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.



    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?lang=en



    The definition seems to have pretty rapidly moved to 'used an AI coding assistant in some capacity'.


    From 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 what 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 entire LLM wrote, I fear it’s only going to get worse.



    Different 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.



    > 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.



    I 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.



    I'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


    It 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.



    "The big takeaway is that speed means nothing without quality" - I feel like this is not true in 'move fast and break things' ideology


    I feel like people don’t really understand that ideology - if all you ever do is break things (or produce broken things), then you’re not actually moving fast at all.


    What percentage of companies can hire an engineer who writes better code than o3?


    Given 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.



    I'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.


    This question isn’t useful without context. But yes the answer is probably 100%.


    100%


    highly doubt that






    Join us for AI Startup School this June 16-17 in San Francisco!


    Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact



    Search:
    联系我们 contact @ memedata.com