自动编程
Automatic Programming

原始链接: https://antirez.com/news/159

Antirez 认为我们应该改变讨论 AI 辅助软件开发的方式,提倡使用“自动编程”一词,而不是“氛围编程”。他区分了两者:**氛围编程**是被动地让 AI 从模糊的提示中生成代码,而**自动编程**是一个主动的、迭代的过程,程序员*引导* AI,利用他们自己的设计和直觉。 他强调,即使有 AI 辅助,最终的软件仍然是程序员愿景和努力的产物——是 AI 训练数据中体现的集体人类知识的延续。我们有权声称对 AI 生成的代码拥有所有权,将预训练视为一种共享资源,赋能个人创作。 最终,Antirez 强调,虽然 AI 可以自动化 *如何* 编写代码,但至关重要的元素仍然是 *编写什么* 代码——赋予软件价值的潜在想法和愿景,这以 Redis 的成功为例。

这个Hacker News讨论的核心是关于使用“自动编程”(AP)——例如由LLM生成的代码——时,责任归属的问题。一位评论员质疑谁应该为通过AP生成的生产代码中的错误或中断负责,不认可所有权声明,并担心会出现“提示错误”之类的借口。 Redis的作者Antirez强烈同意开发者*应该*负责,即使在使用AP的情况下。他认为AP并不能免除开发者的责任;相反,它可以*促进*更彻底的质量保证。核心观点是,盲目接受AP生成的代码而不进行严格测试和监督是开发者的错误,而不是工具的错误。一个相关的案例研究表明,即使LLM生成的代码看起来正确,也可能由于逻辑理解错误而在生产环境中失败,强调了仔细审查的必要性。
相关文章

原文
antirez 1 hour ago. 4763 views.
In my YouTube channel, for some time now I started to refer to the process of writing software using AI assistance (soon to become just "the process of writing software", I believe) with the term "Automatic Programming".

In case you didn't notice, automatic programming produces vastly different results with the same LLMs depending on the human that is guiding the process with their intuition, design, continuous steering and idea of software.

Please, stop saying "Claude vibe coded this software for me". Vibe coding is the process of generating software using AI without being part of the process at all. You describe what you want in very general terms, and the LLM will produce whatever happens to be the first idea/design/code it would spontaneously, given the training, the specific sampling that happened to dominate in that run, and so forth. The vibe coder will, at most, report things not working or not in line with what they expected.

When the process is actual software production where you know what is going on, remember: it is the software *you* are producing. Moreover remember that the pre-training data, while not the only part where the LLM learns (RL has its big weight) was produced by humans, so we are not appropriating something else. We can pretend AI generated code is "ours", we have the right to do so. Pre-training is, actually, our collective gift that allows many individuals to do things they could otherwise never do, like if we are now linked in a collective mind, in a certain way.

That said, if vibe coding is the process of producing software without much understanding of what is going on (which has a place, and democratizes software production, so it is totally ok with me), automatic programming is the process of producing software that attempts to be high quality and strictly following the producer's vision of the software (this vision is multi-level: can go from how to do, exactly, certain things, at a higher level, to stepping in and tell the AI how to write a certain function), with the help of AI assistance. Also a fundamental part of the process is, of course, *what* to do.

I'm a programmer, and I use automatic programming. The code I generate in this way is mine. My code, my output, my production. I, and you, can be proud.

If you are not completely convinced, think to Redis. In Redis there is not much technical novelty, especially at its start it was just a sum of basic data structures and networking code that every competent system programmer could write. So, why it became a very useful piece of software? Because of the ideas and visions it contained.

Programming is now automatic, vision is not (yet).
联系我们 contact @ memedata.com