1978 年经典论述:为何“自然语言编程”是一种愚蠢的尝试
自自动化计算诞生之初,一种观点便长期存在:认为编程中必须保持符号形式的精确性与注意力是一种缺陷。批评者指责计算机如同机械奴隶,严格服从指令,即便指令中存在明显错误也照单全收。正如 A.E. Housman 所言:“但一瞬间是很长一段时间,思想是一个痛苦的过程。”人们渴望更明智的机器,试图摆脱这种被视为无意义的活动。

形式化符号的必要性与接口负担
机器代码因缺乏冗余,曾被视为人与机器之间不必要的风险接口。随着技术发展,系统逐渐增强了对低级错误的防护,许多错误现在会触发报错信息而非产生错误结果。然而,尽管有改进,部分人仍误将“编程简单性”等同于轻松犯下未被发现的错误。本质上,对应于编程语言的抽象机器依然是一个忠实的执行者,能够毫无意义地执行无意义的指令。只要编程使用正式符号,就必然要求使用者具备相应的注意力和准确性。
为降低使用门槛,业界曾尝试设计能用母语指导的机器。这一思路看似合理——让机器承担更多复杂性以简化人类生活,但其前提是将“使用正式符号的义务”视为困难根源。事实上,接口的改变往往导致双方工作量增加。经过多年经验积累,业界越来越倾向于“狭窄接口”。虽然用母语交流会增加机器的负担,但这并不必然简化人类的工作。
数学史与语言精确性的启示
回顾数学历史可以发现,希腊数学因局限于语言和图形活动而陷入困境;穆斯林代数在尝试象征主义后回归修辞风格;现代文明世界的兴起,恰恰得益于西欧摆脱了中世纪学术主义对语言精确性的徒劳追求。相比之下,正式文本的优势在于其操纵只需满足简单规则即可合法,它们是排除无稽之谈的有效工具,而在日常母语使用中,这类逻辑漏洞往往难以察觉。
不应将使用正式符号视为负担,而应视其为特权。正是借助这些符号,普通学生才能完成过去仅属于天才的思维工作。相反,母语的“自然性”往往允许人们轻易说出那些不显而易见的无稽之谈。若假设母语从一开始就是输入输出设备的唯一工具,历史可能会重演,人类可能需要数千年才能达到当前通过形式化语言实现的效率水平。
现实挑战与技术洞察
值得注意的是,近几十年来西方教育趋势远离智力纪律,导致人口对自己语言的掌握程度急剧下降。许多按前一代标准本应精通母语的人,如今无法有效使用自己的语言,这种现象被称为“新文盲”。对于相信自然语言编程却缺乏预测其失败所需技术洞察力的人来说,这应当是一个警示。
无论采用荷兰语、英语、美国语、法语、德语还是斯瓦希里语,制造和使用基于母语的编程机器都极其困难。





