一场编程语言界的“内卷”正在悄悄上演。
评判标准不再是运行速度,也不是开发效率,而是一个你可能从未想过的维度:话多不多。
当AI开始大规模写代码,那些最“啰嗦”的语言,可能第一个被淘汰。
AI的致命短板:记性不好
AI写代码,已经不是未来时。
但再聪明的AI,也有个致命短板:记性不好。
它的“短期记忆”,也就是我们常说的“上下文窗口”,是有限的。代码越长,占用的记忆空间就越大。记忆满了,AI就忘了开头写了啥,开始胡言乱语。
这就引出了一个重要问题:如果代码本身更“省话”,AI是不是就能在有限的记忆里干更多活?
一个叫Martin Alderson的开发者,真的动手测了。
他找来一个叫RosettaCode的编程宝库,里面有上千个编程任务,用近千种语言实现。他挑了19种主流语言,让它们完成相同的任务,然后用GPT-4的tokenizer来“数数”,看谁用的“词”最少。
这当然不是严谨的科学实验,但足以让我们窥见一个正在发生的未来。
结果出炉,有人欢喜有人愁
结果一出,圈子炸了。
垫底的,竟是老牌强者C语言。而夺冠的,是相对小众的Clojure。
两者差距有多大?2.6倍。
这意味着,用C语言写一段代码,占用的AI“脑容量”是Clojure的2.6倍。在寸土寸金的上下文窗口里,这就是生与死的区别。
动态语言,比如Python和Ruby,普遍表现不错。毕竟不用费劲声明类型,天生就“话少”。
但JavaScript却是个意外,在动态语言里成了最啰嗦的那个。
最大的黑马,来自函数式语言阵营。Haskell和F#,这两个带类型的语言,Token效率竟然和动态语言有一拼。秘诀在于它们强大的类型推断系统,帮你把该说的话都偷偷说了。
假设80%的上下文都是代码,用Haskell或F#,AI能“专注”工作的时间,显然比用Go或C#长得多。
惊天反转!简洁之王为何落败?
说到简洁,编程界有个传说——APL。
它用各种奇特的符号(⍳, ⍴, ⌽)表达复杂的逻辑,一个符号顶别人一行代码。按理说,它应该是Token效率之王吧?
结果恰恰相反。
在后续测试中,APL的效率只排到第四。
原因很讽刺:AI看不懂它的“天书”。
GPT-4的tokenizer是为常见文本优化的,根本不认识APL这些生僻符号。每个符号,在AI眼里都得拆成一串字符来理解,一个变多个,简洁的优势荡然无存。
人眼看着最简洁,在AI眼里却是个“话痨”。
暗藏的赢家:J语言的启示
就在APL黯然神伤时,一个名不见经传的语言横空出世。
它叫J语言,同样是数组语言,但聪明地放弃了特殊符号,全用ASCII字符。
结果呢?平均只要70个Token,几乎是Clojure的一半,直接封神。
J语言的崛起,像一个启示录:未来的编程语言,不仅要让人类看得懂,更要让AI“读”得轻松。
如果Token效率真的成为核心竞争力,那么语言的设计哲学或许将被彻底改写。
我们正处在一个算力过剩,但“注意力”稀缺的奇怪时代。
AI,正在用它的方式,重新定义什么是“好”的代码。