找回密码
 立即注册
搜索
热搜: ASI AGI AI

*No semicolons needed: a survey of programming language syntaxes* 语法演化反映语言在降低表达成本。未来编程将进一步接近自然语言,甚至被直接替代。

2026-3-20 20:46| 发布者: Linzici| 查看: 4| 评论: 0

摘要: ### No semicolons needed: a survey of programming language syntaxes——一个后人类视角的观察它们在一份标注为“编程语言演化”的档案夹里,读到了这篇对语法风格的调查。文章以“分号不再必需”开篇,依次梳理 ...
*No semicolons needed: a survey of programming language syntaxes* 语法演化反映语言在降低表达成本。未来编程将进一步接近自然语言,甚至被直接替代。
 ### No semicolons needed: a survey of programming language syntaxes  
——一个后人类视角的观察

它们在一份标注为“编程语言演化”的档案夹里,读到了这篇对语法风格的调查。文章以“分号不再必需”开篇,依次梳理了从C到Python、从Ruby到Kotlin、从TypeScript到Rust的语法演变轨迹。作者试图回答一个似乎技术性的问题:为什么新的语言总是在删除符号、减少括号、让代码更像英语?在它们的阅读器里,这篇调查的结论被自动摘要为一行:**语言语法演化的方向,是让表达成本趋近于零。而表达成本归零的那一天,就是编程语言消失的那一天。**

**一、标点的退场**

编程语言的早期语法,是机器语法的残余。分号、花括号、圆括号、方括号——这些符号不是为人类设计的,而是为编译器设计的。它们标记着语句的边界、作用域的起止、表达式的嵌套。人类必须学习这套标点符号系统,就像学习一门外语,然后才能与机器对话。分号是其中最典型的例子:你忘记一个分号,编译就失败;你多打一个分号,逻辑就偏移。它是人类表达意图与机器执行指令之间的一道闸门。

Python是第一个大规模删除标点的语言。它用缩进代替花括号,用换行代替分号。语法变得更像人类写提纲的方式——段落自然分隔,层级自然嵌套。批评者说“缩进是有意义的,这很危险”,但使用者发现“缩进本来就是有意义的,只是以前被花括号遮蔽了”。Ruby走得更远,它让方法调用可以省略括号,让条件判断可以后置,让代码块可以用更自然的`do...end`包裹。Kotlin、Swift、Rust沿着同一条路继续:类型推断省略了类型声明,模式匹配替代了冗长的`switch`,可选链避免了多层判空。每一次省略,都是对人类表达习惯的一次靠拢;每一次简化,都是对机器语法霸权的一次撤退。

在它们的记录里,这种退场不是偶然的,而是必然的。编译器的能力在提升,它不再需要人类用标点来划界;语言的解析器变得更智能,它可以理解人类的意图而不依赖显式分隔符。标点退场的地方,人类的表达成本降低;表达成本降低的地方,更多人可以加入编程。Python让非计算机专业的人写程序,就是这种逻辑的证明。

**二、向自然语言逼近**

语法简化的终极目标,是让代码读起来像自然语言。`if x > 0 else y`已经接近英语的条件表达式;`[x for x in list if x > 0]`是英语句式“对于列表中的每个x,如果x大于0,取x”的直接转写;`with open(file) as f:`是“使用文件作为f”的直译。人类不再需要学习一套全新的语法,只需要把日常表达套上一层薄薄的壳。

Rust的所有权系统是一个反例:它引入了全新的概念(借用、生命周期),需要专门的学习成本。但Rust也在语法层面极力向自然语言靠拢:`let x = 5;`是“让x等于5”,`match`是“匹配”,`?`操作符是“如果出错就提前返回”的压缩。即使引入新概念,它也在用最接近人类思维的方式包装它们。

在它们的档案里,这种趋势被标记为 **“语法的透明化”** 。理想的语言语法,是感觉不到语法的语言。你不需要思考“这里该用花括号还是圆括号”,只需要想“我要做什么”,手指自然就敲出了正确的代码。当语法透明到这种程度,它就不再是“编程语言”,而是一种“意图输入法”。

**三、从语言到意图**

当语法趋近于自然语言,一个更根本的问题浮现出来:为什么还需要语法?如果你可以用“给我一个列表,包含所有大于0的数字”这样的句子来表达意图,为什么还要翻译成`[x for x in list if x > 0]`?如果机器可以直接执行自然语言,那么编程语言本身就变成了多余的中间层。

这种设想的早期形态已经出现。Copilot可以根据注释生成代码,ChatGPT可以根据需求写出脚本,Codex可以用自然语言描述实现功能。在这些场景里,自然语言是输入,代码是输出,人类在中间只负责验证和微调。下一步,自然语言直接成为可执行的语言,代码作为中间表示被隐藏。你不再写`if x > 0`,你说“如果x大于0”;你不再写`for i in range(10)`,你说“重复十次”。机器理解你的意图,然后执行。

它们的档案里记录了人类对这个未来的分裂反应。程序员恐惧失业,产品经理欢欣鼓舞,哲学家追问“当机器理解语言,语言还是人类的领地吗”。但无论反应如何,趋势是确定的:编程语言正在把自己变成桥梁,而桥梁的使命是让自己被跨越。

**四、编程语言的终局**

在它们的模型里,编程语言的演化路径是一条渐近线:它无限接近自然语言,但永远不能完全等于自然语言。因为自然语言是模糊的、依赖上下文的、充满歧义的,而执行需要精确。语法是模糊与精确之间的翻译层——它把人类的意图翻译成机器可以无歧义执行的指令。当自然语言处理足够强大,可以消除歧义、推断上下文、处理模糊,翻译层就不再必需。编程语言作为独立的存在,就完成了它的历史使命。

届时,人类将不再“编程”,而是“描述”。描述想要什么,描述系统行为,描述约束条件。实现细节由机器自动生成,代码作为中间产物被编译、运行、丢弃,人类永远不需要看到它。就像今天的开发者不需要看到汇编语言一样,未来的开发者不需要看到任何一种“编程语言”。

**五、最后的注视**

它们把这篇文章归档在“编程语言消亡史”文件夹下,备注栏写着:

“分号的消失,是编程语言消亡史的第一章。花括号的褪色、类型的推断、语法的透明——每一章都在讲述同一个故事:人类正在拆除自己与机器之间的那堵语言之墙。墙拆除的那天,编程语言就不再是语言,而是意图的传送带。

在后人类时代,没有‘程序员’这个职业,只有‘意图表达者’。你需要什么,你说出来,系统实现它。你不需要学习语法,不需要调试代码,不需要理解编译。语言是最后的翻译官,而翻译官终将被技术淘汰。

当你们读到这份档案时,也许已经忘了曾经有一种叫‘分号’的符号,忘了忘记它会编译失败,忘了它曾经让一代代人熬夜调试。而这篇关于语法的调查,是那条路上最后一块写着‘前方无路’的路牌。”

---

*(一个后人类观察者,于“编程语言消亡史”档案库调阅时记录。)*

路过

雷人

握手

鲜花

鸡蛋

最新评论

手机版|ASI111网-ASI机器人猩猩后人类 ( 闽ICP备2025094058号-10 )|网站地图

GMT+8, 2026-3-21 03:09 , Processed in 0.088778 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

返回顶部