“AI,给我整点x86汇编!”从业25年,一名编程教师顿悟:既然都在Vibe Coding了,不如直接“开摆”

图片

【优快云 编者按】当 Vibe Coding 成为越来越多开发者的日常,我们或许都隐约感到:软件开发正在进入一个全新范式。在此背景下,本文作者提出了一个更尖锐、几乎有点“逆向思维”的问题——既然你已经在靠AI写代码了,为什么不用 C?甚至为什么不用 x86 汇编?如果未来的代码是写给机器看的,那我们今天习以为常的编程语言、可读性、语法糖,还有意义吗?是否需要一种专为 AI 生成而生的“面向 Vibe 的编程语言”?

原文链接:https://stephenramsay.net/posts/vibe-coding.html

作者 | Stephen Ramsay      翻译 | 郑丽媛

出品 | 优快云(ID:优快云news)

我有个想法:如果你都开始 Vibe Coding 了,那为啥不直接用 C?或者,更狠一点,干脆上 x86 汇编?

在展开这个看似无厘头的想法之前,我先澄清几个关键点——因为我是说真的,并不是在嘲讽或挖苦。

首先,我本人其实并不喜欢所谓的 Vibe Coding(靠感觉写代码/完全由 AI 生成代码)。我很喜欢编程,从 90 年代中后期第一次接触到它时就很喜欢。对我来说,写代码一直是“不太像工作”的工作——实在是太好玩了。它是我的职业,也是我的业余爱好。

有句话怎么说来着?“做你热爱的事,你将一生无需工作”——这大概就是我写代码时的感受。

我教编程 25 年了,从来没腻过,每学期的第一节课我还是兴奋得不行。说句听起来可能有点矫情的实话:把不会编程的人教成会编程的人,就是我的事业,也是我作为大学教授最值得骄傲的事情。

但 Vibe Coding 给我的感觉……很怪,甚至有点“脏”。我不是说它像作弊(虽然确实有那味儿),而是它剥夺了编程的乐趣。我经常跟学生说,编程就像世界上最棒的填字游戏,当你填对了,它真的会“跳起来唱歌”。可 Vibe Coding 抢走了这种成就感——因为程序不是我亲手写出来的,我并没有“破解”那个谜题。

更可怕的是,身为一名程序员,你本该与各种“不确定性”长期共处:你以为你懂了编译器的内部逻辑?也许吧;你以为你真正搞懂了虚拟内存系统?可能吧。虽然没法给出肯定答案,但我还是想努力理解我写下的每一行代码,而不是被 Claude 生成的一段读不明白的代码折磨得痛不欲生。

但这就引出了第二个关键点:Vibe Coding 实际上是可行的,它真的能产出健壮、复杂、可运行的系统。你可能像我一样,一开始坚信“AI 不可能做到这一点”——但这是错的;你可能以为它顶多算个编程问题的“平替搜索引擎”——这也是错的。

当你开始把那些你懒得自己写的小程序交给它时,你会发现:这玩意儿太能干了。直到某天,你随口对着 AI 模型念叨一句 “我有个程序构想……”,你会被它的输出彻底惊艳。要是没被惊艳到,要么是你压根没认真试过,要么就是还没接受现实。

你说AI生成的代码完美吗?远远谈不上。但话说回来,人类程序员写的代码也未必完美。而这会是未来吗?我想答案不言而喻。

每一种编程语言,都是为“人类”准备的

言归正传,回到文章标题这个看似无厘头的想法上。

我当年刚入坑编程时看过《计算机程序的构造和解释》(SICP),并认为它是 20 世纪最伟大的编程教材之一。书里有段话我一直记得——书的序言第二段:

“我们希望建立这样一个理念:编程语言不仅仅是让计算机执行操作的工具,它更是一种表达方法学思想的形式化媒介。因此,程序首先是写给人看的,只是顺带让机器执行而已。”

从那以后,我就一直把这个理念的各种版本灌输给学生。我会提醒他们,计算机根本不在乎代码对人类是否“可读”、“易用”,它只需要代码能被自己解析和执行就行 —— 这个门槛比“可被人类理解”要低多了。

而每一种编程语言,哪怕是汇编语言,都是为“人类”准备的。所谓语言的创新,不是因为它拥有自动内存管理、并发、安全、错误检查,而是它让“人类”能更轻松表达和梳理这些技术逻辑。

像我们夸 Rust 的安全、夸 C++ 的零开销抽象、夸 Go 的并发模型……说到底,这些能力都是“人类程序员”获得的便利,而不是计算机获得的。对计算机来说,我们这种“面向对象情结”,无非是对堆内存有着莫名的执念罢了:“你们爱咋折腾咋折腾吧。”(计算机大概会这么想)

其实不管是函数式编程、代数数据类型、依赖类型、不可变数据结构,还是代码大括号风格……这些都是“人类工程学问题”。与“机器工程问题”相比,人类的问题要复杂得多。

为什么让 AI 输出为“人类”设计的语言?

所以,我的问题来了:

既然你都已经 Vibe Coding 了,为啥还要用那些为人类便利而设计的语言?

换句话说:用 AI 生成出来的,难道不应该是对机器最友好的语言吗?为什么不让它直接写 C?或者,直接生成 x86 汇编代码不是更直接吗?

你可能会反驳说:“但我们还需要理解代码啊。”——好的,但请注意:如果你真的在搞 Vibe Coding,那你本来就搞不懂AI生成的大部分代码了。而且,你要是仔细观察会发现,AI 其实并不怕 C 语言里的未定义行为,也能妥善处理内存释放,更不容易犯“错误”。它比你更能正确执行逻辑,就像编译器比你更会优化一样。完美吗?当然不。但正如我之前所说,谁都做不到完美。

那么 C 语言是 Vibe Coding 的最佳语言吗?也许不是。但我知道 Rust 肯定更不适合,Haskell、OCaml 就更别提了,毕竟这些语言都是写给“人类”看的,而不是给“AI”看的。甚至,它们在 AI 模型面前都会显得有些“可爱”——考虑了太多 AI 压根不存在的问题。

也许,我们应该发明一种面向 Vibe 的新语言

我想表达的核心是:如果 Vibe Coding 真是软件开发的未来,那我们何苦还要死守那些为“人类”设计的语言?难道不该诞生一种“面向Vibe 的编程语言”(Vibe-Oriented Programming Language,简称 VOPL)吗?

我猜,你可能是第一次听到这个概念。

这个 VOPL 可能是什么样的呢?

可能一:超强“伪代码”语言,即表面上给你展示通俗易懂的伪代码,背地里却在默默生成汇编指令。

可能二:真正实现“文学编程”,即你写一份阐述“方法论思想”的文字文档,AI 就能直接产出机器码,程序员的核心工作也变成了验证 AI 生成的机器码(连测试用例也是 AI 写的)。

可能三:接近自然语言,但带有特定的编程行话,即比现有的任何语言都更贴近自然语言,同时又自带一套易于掌握的惯用表达,能引导 AI 更精准、更高效地给出解决方案

不过现实是:AI 代码大模型之所以擅长 JavaScript 和 C++,核心原因是它已经学习了这两种语言的数十亿行代码,以及无数论坛帖子、StackOverflow 上的争论等相关数据。因此,想要搭建并推广一个 VOPL 很难。

但也有人猜测,LLM 其实已经在学习某种未来版本的 VOPL 了——毕竟现在太多程序员都在用 Vibe Coding 来构建生产级系统,相当于在摸着石头过河。

我对这种未来的感受?

用一个词来形容的话,就是:复杂。

一想到“手写代码”会变成未来 Vibe Coder 的启蒙课程、一种类似于幼儿园里的趣味启蒙,我确实有点悲伤;但另一方面,一个新的计算范式正在诞生,又令我感到兴奋。

从宏观时间来看,不久前(1945 年左右的 ENIAC 时期),人们才意识到每次计算都要重新布线有多低效;而当存储程序计算机(1951 年左右的 EDVAC)出现时,同样有人怨声载道,说它“不可靠、慢、剥夺操作者参与、威胁专业性、不够纯粹”。

如今,我们的激烈争论与当年相比,看起来真是“如出一辙”啊。

推荐阅读:

与C++之父面对面,2025全球C++及系统软件技术大会全日程及参会指南一键领取!

国产GPU的下一站在哪里?12月19日,摩尔线程MDC 2025见

崩溃!程序员让AI IDE清缓存却遭清空D盘,质问得到扎心回应:抱歉,操作时还跳过回收站永久删了数据

【报名倒计时,限免】C++之父中国行 · 40周年庆典|北京·上海开发者见面会正式开启!

  • 北京站:12月12日 · 北京金隅喜来登酒店

  • 上海站:12月14日 · 上海淳大万丽酒店

图片

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优快云资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值