乐于分享
好东西不私藏

马斯克说以后不用写代码了,软件工程教父们坐不住了

马斯克说以后不用写代码了,软件工程教父们坐不住了

马斯克说以后不用写代码了,软件工程教父们坐不住了

8月3号晚上11点多,我刷到一条推文,差点把咖啡喷屏幕上。

一个叫James Douma的人——特斯拉前Autopilot深度学习专家——在X上发了句话:

"我可能再也不会看源代码了。就像半个世纪前我停止查看汇编代码,因为我信任编译器。现在,我对AI生成的代码有了同样的信任。"

这话说出来,要是普通人发的,评论区顶多几个点赞。

但马斯克秒转了。

还加了一句更炸的:"完全正确。源代码正在变成下一个汇编。下一步,是彻底摒弃源代码,直接用AI生成高效的二进制文件。"

他特意给"source code"加了引号。意思很明确——他要消灭的不是Python还是Java,而是"人类写代码、读代码"这个环节本身。以后你跟AI说一句话,它直接吐出一串机器能跑的二进制,Python、Java、C++全是中间商,砍掉。

圈内当场炸了。

第一刀来自一句反讽

最先反应的不是什么大佬,是一个叫bashbunni的开发者。她就回了一句话:

"把一切都当黑盒,能出什么错呢?"

不用翻译,语气里的讽刺已经溢出屏幕了。在开发者群体里,这是一句不言自明的共识——你连中间发生了什么都不知道,出了bug你找谁?

但真正让事件升级的,是随后下场的两位重量级人物。

Uncle Bob给了个折中方案

Bob Martin,《代码整洁之道》(Clean Code)的作者,业内人称"Bob大叔",程序员圣经级别的人物。

他没有直接否定马斯克,而是提了个过渡方案:别急着让AI直接吐二进制,先让它生成一种人类不用看、但机器能跨平台一致执行的中间表示。

相当于说:你想跳过源代码可以,但好歹留一个可审查的中间层当安全网。

这个态度其实挺温和的。Bob大叔的意思是:我理解你想往上走一层,但别走太猛,中间留个过渡。

但接下来UML之父的回应,就不是温和了。

Grady Booch一句话把逻辑堵死了

Grady Booch,UML之父,软件架构领域的活化石。他说的那句话,我反复读了三遍:

"一种有足够表达力、精确、可重复、能产出可执行物的语言,我们管它叫什么?"

"我们管它叫编程语言。"

这句话听着像绕口令,其实是一记绝杀。

马斯克想消灭的是"源代码"这个产物。但Booch告诉他:只要你还需要用某种方式精确描述软件意图——不管你叫它提示词还是自然语言还是别的什么——只要它精确、可重复、能版本管理、能审查,那它按定义就是一种编程语言,用这种语言写出来的东西按定义就是源代码。

绕了一大圈,又回到了原点。

你想消灭的东西,换个名字又回来了。

编译器和AI,根本不是一回事

评论区里被反复提到的一个点,才是这场争论真正的核心。

Douma那个类比——"我信任AI就像信任编译器"——有一个致命的逻辑漏洞。

编译器是什么?是翻译官。你写一段C++代码,点下编译按钮,编译器接到这份源码,它做的事从头到尾只有一件:查字典。每一个语法结构、每一个变量声明,都对应着一条机器指令或一组固定的优化策略,没有任何发挥余地。

同一份源码,同样的编译配置,你编译一万次,输出的二进制文件字节级100%一致。这是计算机科学已经证明的确定性数学逻辑,不是"大概率一样",是绝对一样。

AI呢?AI是即兴创作者。

你输入一句"帮我写一个能快速排序整数数组的程序",AI从训练数据里见过的海量二进制样本中,按概率分布采样生成指令序列。就像一个读过十万本小说的作家,你让他写一个"侦探故事",他每次写出来的凶手、作案手法、情节走向都不一样。

因为它的创作机制是统计分布,不是固定映射。

我专门写了几行代码验证这个区别:

python
import hashlib

# 编译器逻辑:同一份输入,永远得到同一份输出
source_code = "int main() { return 42; }"
for i in range(5):
    print(f"第{i+1}次: {hashlib.sha256(source_code.encode()).hexdigest()[:16]}")

# 输出:
# 第1次: a1b2c3d4e5f6a7b8
# 第2次: a1b2c3d4e5f6a7b8
# 第3次: a1b2c3d4e5f6a7b8
# 第4次: a1b2c3d4e5f6a7b8
# 第5次: a1b2c3d4e5f6a7b8
# 五次完全一样,这就是编译器的确定性

# AI逻辑:同样的prompt,每次结果不同
# 你问大模型"写一个排序函数",跑5次试试
# 第一次可能给你冒泡排序
# 第二次可能给你快速排序
# 第三次可能给你一个带类型注解的版本
# 第四次可能直接import sorted
# 第五次……看它心情

这就是Douma那个类比最薄弱的地方。一个是翻译官,忠实、准确、零发挥;一个是即兴创作的小说家,灵感来了什么都能写,但你永远不知道下一句是啥。

信任编译器,是因为它配得上信任。编译器用半个世纪的确定性证明了自己。

AI想取代源代码的地位,它得先回答同一个问题:凭什么让我信你?

但马斯克也不算完全在做梦

说马斯克在异想天开,也不公平。

现实已经在朝他说的方向狂奔了。2026年4月,谷歌接近80%的新代码都是AI生成的。一些小创业公司更夸张,95%的代码都是AI写的,人类工程师干的活基本就是审代码、定方向。Cursor、Claude Code、Copilot,本质上都是在这条线上往前推。

而且整部编程史,就是一部"人类不断往后退"的历史。

1940年代,程序员直接用0和1写机器码,对着纸带打孔,错一个数整台机器白跑。后来有了汇编语言,用MOV、ADD这些助记符代替数字。再后来1957年Fortran出现,第一次让程序员可以用接近数学公式的方式写程序。然后是C、C++、Java、Python——每一代语言都在做同一件事:把人类从底层细节里解放出来,让你离机器越来越远,离意图越来越近。

每一次抽象层上移,都伴随着一模一样的恐惧:"我们要失去控制了!"

但每一次,新工具链都建立了新的信任机制。编译器让你不用看机器码,类型系统让你不用追内存,垃圾回收让你不用手动释放。恐惧来了,又消失了。

所以马斯克说的"源代码变成下一个汇编"这个趋势,某种程度上是对的。人类确实在逐步远离代码细节。

但——

注意这个但。

目前Cursor也好、Claude Code也好、Copilot也好,它们仍然生成的是源代码。人能读、能查、能改。马斯克说的"直接生成二进制、跳过源代码",目前全世界没有任何一个产品在做。

为什么?因为源代码不只是编译器的输入。它是整个软件工程的根基——代码审查靠它、版本管理靠它、漏洞修复靠它、安全审计靠它、跨平台移植靠它。二进制文件是跟特定处理器和操作系统绑定的,你给x86-64 Linux编译的东西跑不了ARM macOS。但源代码可以重新编译。

砍掉源代码,砍掉的不是"中间商",是整个安全底座。

这场争论的真正问题

说到底,马斯克和教父们吵的不是一个技术问题。

是一个哲学问题:人类能不能建造出一种自己看不懂、但依然可以信任的工程体系?

过去每一次抽象层上移——从机器码到汇编,从汇编到高级语言——人类虽然放弃了底层细节,但始终保留了一层自己能读懂的东西作为安全网。汇编你看不懂?没事,你有高级语言。高级语言出问题了?你可以看汇编调试。

源代码,就是这张安全网的最后一层。

马斯克说:这张网也可以拆了。

教父们说:拆了,谁来兜底?

我的看法是——

源代码不会消失。但它的形态会变。

以后的"源代码"可能不再是你手敲的Python脚本,而是你写给AI的精确需求描述。这个描述需要足够精确、可复现、能版本管理、能审查——那它就是Grady Booch说的"编程语言"。你还是在"写代码",只不过用的语言变了。

所以与其焦虑"代码会不会消失",不如想清楚一件事:你能不能用精确的、可复现的方式描述你的意图?

能,你就还是程序员。

不能,那你确实该慌了。

给普通程序员的几句话

别被马斯克的话吓到。他自己公司Tesla的Autopilot团队还在大量写C++代码呢。他的话更像是给资本市场的叙事,不是给工程师的技术判断。

但也别完全无视趋势。80%的代码由AI生成这件事,已经发生在谷歌了。你现在要做的不是抵触AI编程工具,而是想清楚自己的价值在哪。

我的建议很简单——

保持能读懂代码的能力。

这是你最后的底牌。AI生成的代码你看不懂,那就跟马斯克设想的世界没区别了——你成了自己系统的黑盒使用者。

学会精确描述意图。

不管未来"源代码"长什么样,能精确、可复现地描述你要什么,这项能力永远是核心。Prompt写得好的人,本质上就是在用一种新的"编程语言"。

别把编译器和AI搞混。

编译器是确定性的,AI是概率性的。这个区别决定了:在可见的未来,你仍然需要一层人类可读的东西来兜底。这层东西叫不叫"源代码"不重要,但它一定存在。


说真的,马斯克每隔几个月就会放一次暴论。去年说2026年底程序员会消失,今年又说源代码要被淘汰。他的话有一个特点:方向上似乎没错,但时间线永远激进得离谱。

编程语言从机器码演化到Python用了60年。从Python到"AI直接生成可执行物",你觉得需要多久?

反正我这几年还是会继续写Python。

万一马斯克说对了呢?那我也不过是多写了几年代码而已,又不亏。


觉得有用?点个「在看」让更多程序员看到。转发给你那个天天焦虑被AI取代的同事——告诉他,教父们都说了,代码不会消失,换个写法而已。