如果AI能跳过编译器直接生成机器码,全球1200万程序员的工作流将被连根拔起。这不是科幻,是马斯克在2024年抛出的时间表——两年。
他在X上放话:Grok Code的训练逻辑和市面上所有代码大模型都不一样。别人教AI写人看得懂的代码,他教AI直接写CPU看得懂的0和1。
Current: Code → Compiler → Binary → Execute
Future: Prompt → AI-generated Binary → Execute
这个省略号里删掉的东西,是程序员花了70年搭建的整个工程体系。
从插线板到Prompt:人类怎么一步步"偷懒"
作者自称不是计算机科学家,是个从Fortran写到TypeScript的老炮。他的履历很有意思:本科物理学位里混过汇编和PLC,硕士论文是用C++写M68K处理器模拟器——亲手用高级语言翻译过机器码的人,对"代码"和"二进制"之间的距离有肌肉记忆。
他经历过三代编程范式。第一代是物理操作时代:插线板、拨动开关、打孔纸带。程序不是写出来的,是接出来的。第二代是符号化时代:汇编语言出现,人类用助记符代替机器码,但本质上还是一对一翻译。第三代是抽象爆炸时代:Fortran、Pascal、C++、C#层层封装,每一层都在说"让程序员关心更少细节"。
高内聚低耦合、敏捷宣言、DevOps、可复用框架——这些全是给人类大脑设计的认知减负工具。
讽刺的是,无论你的代码写得多么"优雅",编译器最后都会把它搅成一锅粥。人类痛恨的"面条代码",CPU吃起来毫无障碍。作者提到一个数据:干净的源代码最多带来25%的编译优化空间,剩下的性能榨取全靠编译器在混乱中找规律。
这就引出一个被忽视的事实:编译器本身就是AI的前身。它是一种领域特定的专家系统,把人类可读的符号系统翻译成机器可执行的状态转换。GCC、LLVM、MSVC——这些工具积累了四十年的架构知识、处理器特性、平台差异,是软件工程史上最大规模的"知识固化"。
马斯克想绕过的,是这座固化的冰山。
为什么程序员集体反对:三个技术层面的硬骨头
谷歌"elon musk ai skip code machine code",你会看到技术博客的集体应激反应。作者筛选了几篇有代表性的批评,把它们的技术论点摊开来看。
第一块硬骨头是可验证性危机。源代码存在的最大价值不是运行,是被审查。人类需要读代码来理解系统行为,需要diff来追踪变更,需要静态分析来捕捉漏洞。二进制是行为的终点,却是认知的黑洞。AI直接吐二进制,等于在程序员和程序之间竖起一道单向玻璃。
第二块硬骨头是优化权重的转移。现代编译器的优化策略是数学与工程的双重结晶:指令调度、寄存器分配、向量化、链接时优化——这些不是"翻译",是"再创造"。让AI承担这个角色,意味着它必须内建同等规模的领域知识,而不是靠概率预测蒙对。
第三块硬骨头最隐蔽:可移植性的沉没成本。编译器的核心功能之一是"一次编写,到处编译"。同一份C代码可以在x86、ARM、RISC-V上生成不同的最优机器码。AI直接生成二进制,要么锁定特定架构(回到汇编时代的噩梦),要么自己充当跨平台编译器(复杂度爆炸)。
Cloud Soft Solution的技术分析被作者单独拎出来,认为代表了"利益相关方视角"——这家做云解决方案的公司,业务根基就是现有开发工具链。他们的反对有立场,但立场不等于错误。
作者为什么觉得"可行":一个反直觉的技术判断
在满屏的批评声中,作者投了赞成票。他的理由不是商业愿景,是一个关于训练数据的观察。
现有的大模型代码助手(GitHub Copilot、Cursor、Codeium)都被训练来预测"下一个token",而训练数据是人类写的源代码。这导致一个结构性偏见:AI被奖励写出"看起来像人写的代码",而不是"运行效率最高的代码"。
Grok Code如果改变训练目标,直接以"可执行二进制"为输出单元,同时以"通过测试、性能达标"为奖励信号,它学习的将是机器行为的有效空间,而非人类代码的统计规律。
这类似于AlphaGo的启示:人类围棋选手的定式是经验压缩,但蒙特卡洛树搜索发现了很多"违反直觉"的胜招。AI直接操作二进制,可能发现人类编译器从未到达的优化疆域。
作者没有回避代价。他承认这意味着放弃人类可读性,放弃渐进式调试,放弃四十年来积累的工程实践。但他说了一个被主流讨论忽略的点:这些"放弃"是针对人类程序员的,不是针对AI系统的。
如果AI能自主验证(formal verification)、自主测试(property-based testing)、自主部署(canary release),那么"人类读不懂"就不再是阻断条件,只是成本转移。
2026年:一个被低估的激进时间表
马斯克的时间表是2026年。技术社区的反应是"不可能",但作者注意到一个细节:Grok Code的训练基础设施是xAI自建的,不受Hugging Face生态的范式约束。
这意味着他们可以重新定义"代码"的粒度。不是文件,不是函数,不是token序列,而是二进制块的组合操作。训练数据可以是现有编译器的输入输出对(源代码→优化后的汇编),也可以是动态执行轨迹(性能分析器的采样数据)。
一个可能的中间态是"AI生成中间表示(IR)"。LLVM的IR已经是架构无关的,但人类难以直接编写。AI如果精通IR,就能保留编译器的后端优化能力,同时跳过前端的人类可读性负担。
作者提到自己的一个经历:写M68K模拟器时,他必须逐条理解机器码的语义映射。那段经历让他相信,机器码的"不可读"是相对于人类认知带宽的,不是相对于信息处理系统的。
如果AI的认知架构和人类不同,"可读性"本身就是一个需要被重新审视的变量。
程序员会失业吗:一个错误的问题框架
讨论AI替代程序员,通常陷入"能力对比"的陷阱。作者认为更准确的框架是工作流重构。
Prompt-to-binary不会消灭编程,它会消灭"写代码"这个具体动作。但需求分析、系统设计、测试策略、运维监控——这些活动的权重会重新分配。程序员可能变成"二进制行为的策展人",用自然语言描述意图,用约束条件划定边界,用验收测试验证结果。
这类似于摄影的演变:暗房技术曾经是摄影师的核心技能,数码后期让它边缘化,但"拍什么、怎么拍、为什么拍"的决策权重反而上升。
作者最后没有给出预测。他只是说,如果2026年真的出现可用的prompt-to-binary系统,那将是一个比"AI写代码"更深刻的范式转移——因为它挑战的不是程序员的手艺,而是人机分工的底层假设。
那个假设是:人类负责意图,机器负责执行,而代码是两者之间的契约。如果AI能直接生成执行层,契约本身还有存在的必要吗?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.