“氛围编程”的问题
The problem with "vibe coding"

原始链接: https://dylanbeattie.net/2025/04/11/the-problem-with-vibe-coding.html

Dylan Beattie 区分了“程序”(programs)和“产品”(products),认为许多科技界人士混淆了这两者,尤其是在“氛围编程”(vibe coding)兴起之后。“程序”是快速编写、只在开发者机器上运行的脚本,用于个人自动化,通常缺乏错误处理,平台依赖性强,而且是可丢弃的工具。然而,“产品”则旨在分发,可能面向付费客户。 关键区别在于,将一个功能性的程序转化为可行的产品需要付出巨大的努力。这包括解决编码、国际化、可扩展性、安全性以及许多在初始开发中常常被忽视的其他因素。这就是为什么开发者预估往往不准确的原因。 像Copilot和ChatGPT这样的工具使编程民主化,使非开发者也能创建有用的脚本。这很好,但这仍然是编程,而不是产品开发。一个成功的程序只是创造一个成功产品的一小步。

这个Hacker News帖子讨论了“氛围编程”(vibe coding),即使用Copilot和ChatGPT之类的LLM进行软件开发。 commandersaki认为这些工具使缺乏经验的开发者能够创建有用的程序,并举了一个例子,说明“氛围编程”如何快速有效地开发出一个成功的产品。 linsomniac强调了LLM对经验丰富的开发者的潜力,使其能够快速尝试不同的方法(线程、异步、过程式)和功能(日志记录、调试、进度显示),而这些方法通常需要花费大量时间。这促进了探索并改善了设计。 SteveDR对linsomniac的使用方式提出了异议,声称“氛围编程”意味着忽略底层代码,这与普通的LLM辅助开发不同。tjpnz质疑缺乏经验的开发者在这种新的范式中如何获得经验。alchemist1e9认为这些工具最终会提高经验丰富开发者的市场价值,而pfraze则强调了理解程序和产品之间区别的重要性。
相关文章
  • “氛围编程”与现实 2025-03-22
  • (评论) 2025-04-05
  • (评论) 2025-03-22
  • (评论) 2025-03-22
  • 最后的独行程序员 2025-04-05

  • 原文

    The whole “vibe coding” thing is another reminder that quite a lot of people working in tech don’t understand the difference between programs and products.

    To me, programs are “works on my machine” code. The kind of things many of us crank out a few times every week. Experiments, prototypes… that script you hacked up to rename all the MP4 files in a folder? You know the one. No error checking. Hard-coded path names. Does it work on Windows? Who cares? I’m on Linux right now and I got work to do.

    I have dozens of these kinds of programs I use every day. They’re tools I use to automate bits of my work. They crash all the time (“what? Oh… that person has a backslash in the title of their presentation… interesting.”) - but that doesn’t matter; I fix them, I get the results I need, I move on. The code is just a means to an end. The result is what matters.

    If you’re writing software that you’re planning to ship; to distribute to other people, perhaps even sell it to paying customers? Well, now that’s a whole different ball game.

    Probably the single most important lesson I’ve learned in my career, the thing that I would argue is the hallmark of “experience”, is understanding just how much work it takes to turn a working program into a viable product. It’s why developer estimates are so notoriously optimistic - and why experienced developers are so notoriously cynical. Let’s say you crank out a bit of code that’ll take responses from a web form and add them in an Excel spreadsheet. That’s not that hard… yay! we just built a Typeform competitor in one afternoon! Except, no, you didn’t. You made one thing work one time on one computer. You haven’t considered encoding, internationalization, concurrency, authentication, telemetry, billing, branding, mobile devices, deployment. You haven’t hit any of the weird limits yet - ever had a system work brilliantly for the first 65,535 requests and then fall over? You don’t have a product. At best, you have a proof-of-concept of a good idea that, if some very smart people work very hard, might become a viable product.

    One of the genuinely positive things about tools like Copilot and ChatGPT is that they empower people with minimal development experience to create their own programs. Little programs that do useful things - and that’s awesome. More power to the users.

    But that’s not product development, it’s programming. They aren’t the same thing. Not even close.

    联系我们 contact @ memedata.com