[控场AI]
· 4 分钟阅读· 2,253 字

LLM无法使用的编程语言:反AI设计的另类探索

LLM无法使用的编程语言:反AI设计的另类探索

开发者构建刻意让LLM难以使用的编程语言,引发AI时代代码所有权与语言设计边界的讨论。

一位开发者在Hacker News上展示了一门专门让LLM「用不了」的编程语言,引发社区讨论。文章分析其设计意图:当编程语言的设计目标从方便人类扩展到方便机器生成时,有人选择主动划定边界。社区争论分为两派,一派视其为有意义的语言设计实验,另一派则指出LLM的泛化能力意味着「反AI」属性可能只是语言冷门所致,一旦流行防线便会瓦解。文章进一步提炼出三个启示:编程语言设计新增「机器可读性」维度、代码所有权与训练数据伦理仍是未解难题、人类创造力的边界值得主动守护。

在AI编程助手日益普及的今天,一位开发者反其道而行之,构建了一门专门让LLM「用不了」的编程语言。这个在Hacker News上引发讨论的项目,触及了AI时代编程语言设计、代码所有权与人类创造力边界的深层议题。

Hacker News 讨论截图

一门刻意「反AI」的语言

据Hacker News上该项目的讨论帖,作者的核心主张很明确:他构建了一门LLM无法有效使用的编程语言。帖子获得23个点赞和19条评论,讨论热度不算高,但话题本身颇具挑衅性。

这个项目的价值不在于技术复杂度,而在于它提出了一个被主流叙事忽略的问题——当编程语言的设计目标从「方便人类」扩展到「方便机器生成」时,是否应该有人主动划定边界?作者用行动给出了自己的答案:与其等待平台限制AI抓取,不如从语言层面让机器难以介入。

需要说明的是,原始素材仅提供了标题和社区讨论的基本数据,未披露该语言的具体语法、实现方式或「反LLM」的技术机制。以下分析基于标题所传达的设计意图与Hacker News社区的一贯讨论脉络展开。

esolang(深奥编程语言) 是「esoteric programming language」的缩写,指为实验、挑战或艺术表达而非实用目的设计的编程语言。经典例子包括只有8个指令的 Brainfuck、以空格和制表符编码的 Whitespace,以及代码形似艺术作品的 Piet。这类语言通常刻意违背主流语言的设计原则(如可读性、可维护性),以此探索计算与表达形式的边界。本文作者的语言虽未被明确定位为 esolang,但其「刻意排除某一类使用者」的思路与该传统高度一致——esolang 排除的往往是普通程序员,而这门语言排除的是 LLM。

为什么有人想「挡住」LLM

过去两年,AI编程工具的能力边界快速扩张,从代码补全走向整文件生成、仓库级重构。开发者社区对此的态度并不统一。一部分人拥抱效率提升,另一部分人则担忧代码的同质化、训练数据的隐性收割,以及人类开发者技能的钝化。

「LLM无法使用」这个表述,本质上是一种设计约束的宣言。它可能意味着语言采用了难以被tokenizer切分的符号体系、依赖人类独有的上下文直觉、或者故意引入LLM容易出错的歧义结构。无论具体手段如何,其目标是一致的:让代码的生成过程重新回到人类手中。

这类思路与近年兴起的「反爬虫」「反训练」运动一脉相承,只是把战场从数据层搬到了语言层。

Tokenizer(分词器) 是 LLM 处理文本的第一道工序:它把原始字符流切分为模型词表中的 token(子词单元),再映射为向量输入。不同模型的 tokenizer 各不相同(如 BPE、WordPiece),但共同点是依赖训练语料中高频出现的字符组合。如果一门语言采用罕见的 Unicode 符号、非常规的空白结构或刻意构造的歧义记号,tokenizer 就可能将其切分成低效甚至无意义的片段,显著增加模型理解与生成的难度。这正是「让 LLM 用不了」在技术上的可能着力点之一——攻击对象不是模型的推理能力,而是它感知文本的入口。

社区讨论中的分歧

Hacker News的评论区向来以技术较真著称。围绕这个项目的典型争论可以归纳为两派。

一派认为这是有意义的设计实验。编程语言本就是人为约定的符号系统,历史上不乏为特定目的而生的「小众语言」(如esolang)。刻意排除某一类使用者的语言,和刻意服务某一类使用者的语言,在方法论上没有本质区别。

另一派则质疑其实际效果。LLM的泛化能力意味着,只要语言有足够的公开示例,模型就能学会;而一门无人使用的新语言恰恰缺乏训练数据,短期「挡住」LLM的原因可能只是「太冷门」,而非设计上的不可逾越。一旦语言流行,防线自然瓦解。

这个反驳点出了问题的核心:语言的「反AI」属性,很大程度上取决于它的流行度,而非语法本身。

泛化能力(generalization) 指模型在训练时未见过的任务或分布上仍能表现良好的能力。对编程语言而言,这意味着即使某语言未直接出现在训练数据中,LLM 也能借助跨语言的共性(相似的语法范式、关键字语义、控制流结构)进行迁移推理。因此「缺乏训练数据」并不等于「模型完全无法使用」,只是生成质量下降。这也解释了社区反驳的深层逻辑:一门新语言挡住 LLM 的屏障是暂时的、统计性的,一旦出现足够多的公开代码示例,泛化能力就会迅速填补空白。真正难以跨越的,是那些无法从已有语言类比推导的独特语义约定。

对AI编程时代的启示

抛开具体实现,这个项目至少提供了三个值得思考的角度。

第一,编程语言的设计空间正在被AI重新定义。过去语言设计者关心的是表达力、性能和开发者体验,现在多了一个维度:机器可读性。有人选择优化它,就有人选择对抗它。

第二,代码所有权与训练数据伦理仍是未解难题。开发者对「自己的代码被用于训练」的抵触情绪真实存在,而语言层面的防御是一种成本较低的姿态表达。

第三,人类创造力的边界值得被主动守护。效率并非唯一的价值尺度,保留一些「机器难以进入」的领域,对技术生态的多样性未必是坏事。

这个项目大概率不会成为主流语言,但它像一枚小小的路标,提醒我们在狂奔的AI浪潮中,仍有人愿意停下来问一句:这条路一定要让机器也走得通吗?

#LLM无法使用的编程语言#反AI编程语言#AI编程#编程语言设计#代码所有权#Hacker News
分享:

相关推荐