动态语言真的更省 LLM Token 吗?
What's the best programming language for coding agents?
网上流传着动态语言比静态语言更节省 LLM Token 的说法,但我通过 zstd 和 Pandoc 两个实际项目进行了独立验证。在简单任务中,动态语言确实表现更优;然而一旦任务复杂度提升,静态语言的优势便显现出来。那些声称 J 语言等冷门语言效率极高的结论,在真实场景中往往无法复现。主流语言凭借丰富的训练数据,在成本和正确率上反而更胜一筹。盲目追求 Token 效率而选择生僻语言,可能得不偿失。
在琐碎任务上的表现并不能推广到更复杂的情况。
HN 评论区
180- michaelteter
LLM 写 Gleam[1] 和 Lustre[2] 的能力之强让我大为惊叹。与主流语言相比,训练数据中几乎没有任何 Gleam 代码。
我没有任何证据支持这一点,但我怀疑那些对人类友好的语言[3] 对 LLM 也会很友好。编译型、强类型、静态类型、不可变、纯函数、模式匹配、内存安全等等。
[3] 是的,我意识到“对人类友好的语言特性”是一个极具争议的话题。那只是我个人喜欢的语言特性清单。
- tadamcz
对 LLM 的用户来说,最好的语言是什么?
哪种语言能提供高质量的正确性预言机(correctness oracles),从而让用户不必像保姆一样盯着 LLM,也不用做大量的手动测试?
- MichaelNolan
鉴于我们已知 LLM 能多么有效地从训练语料库中检索数据,并将其风格迁移到不同场景(此处指编程语言),我不确定复制现有知名软件片段对这类评估有多大参考价值。这或许能解释为什么它们在本文提到的任务中,在不同语言上的表现能力趋于一致。我更感兴趣的是大家在现实世界中的实际体验。
- Surac
任何优质的 LLM 服务,如果你的提示词涉及大量数据,都会在不被要求的情况下自动编写并运行临时代码。Gemini 和 Claude 通常会选择 Python,可能还会搭配一些 SQLite。
- ramon156
编程语言对编码代理(coding agents)的友好程度,与其在人类中的流行度之间是否存在关联?如果存在,那么 Python 岂不是对代理来说最好的语言,因为它是目前最流行的(因此模型可用的上下文也最多)?