从语言进化看仓颉:看懂自然语言与编程语言

1 小时前13.0k
自然语言实现的是人与人之间的交流;编程语言,则是人与机器对话的桥梁,是驱动AI、机器人的底层指令。

这是苍穹猎鹰第454篇演化日记

从语言进化看仓颉:看懂自然语言与编程语言

本文仅为个人观点分享,文中列举的数据与逻辑仅作分析参考,不构成任何决策建议。

语言,开启了人类文明的先河。

那么,怎么理解语言呢?小编的答案——语言是主观思维对客观世界的直接反应。

这句话里藏着三个词:主观、客观、反应。

人先有了对现实的感受和判断(主观),再把这种判断投射到外部世界(客观),中间那根管道就是语言。

没有语言,思维只能在脑子里打转;有了语言,思维才第一次有了形状,才能被传递、被检验、被累积。

维特根斯坦说过一句被引用最多的话:“语言的边界,就是思维的边界。”

小编一直把编程语言和我们日常使用的自然语言放在一起比较,发现它们之间有很多相似之处。

自然语言实现的是人与人之间的交流;编程语言,则是人与机器对话的桥梁,是驱动AI、机器人的底层指令。

我们可以使用自然语言与人交流、写文章,也可以运用编程语言与机器对话、开发软件和应用。

1/5

演化与设计

这是两类语言最根本的分野。

自然语言:十几万年的无意识演化。

人类语言有多古老?这个问题至今没有定论,但近几年的基因研究给出了一个相对硬的锚点。

2025年3月,一项发表在《心理学前沿》的研究,通过分析过去18年发表的15项基因研究得出结论:人类的语言能力至少在13.5万年前就已经存在,而语言作为系统化的社会交流工具被广泛使用,大约在10万年前。

十几万年的时间跨度,关键仍在于演化。

《语言经济学导论》里指出:语言是人类行为演化的结果,而演化在语言起源上最基本的特征,就是新奇的创生、新习惯用语的发现,以及多方的模仿与反复试错。

没有人设计它,没有人给它定规范,它是十几万年间无数张嘴反复试错、自然选择的结果。

编程语言:七十年的有意识设计。

编程语言的历史短到可以用年份精确丈量。

最底层是机器语言,全是0和1的二进制指令,CPU只认识它,也只能直接执行它。但用机器码写程序极其痛苦——必须记住所有机器指令对应的二进制代码,每条指令只能完成一个非常小的任务。

于是1950年代,高级语言被“设计”出来:Fortran(1957),取自“Formula Translator”(公式翻译器),由IBM的约翰·巴克斯团队开发,是世界上第一个被正式采用、并延续至今的高级编程语言。

看清这个对比:自然语言是长出来的,编程语言是造出来的。

前者像一棵树的年轮,后者像一栋楼的图纸。年轮里没有设计师,图纸上有明确的设计者和设计目标。

2/5

提问与求解

两类语言的分工,可以用一句话概括:自然语言负责提出问题,编程语言负责解决问题。

举个具体的例子——我们常用的办公软件。

自然语言提出的问题:“我这份300页的合同里,所有甲方的名字都要改成新公司名,还要把每份文件都另存成PDF。”

这句话人听得懂,但WPS听不懂。要让它执行,得把这句话翻译成一条条可执行的指令——WPS里对应的就是JSA宏(基于JavaScript的脚本语言,WPS用它替代VBA做自动化)。

具体的技术细节小编也不是很懂,但可以梳理出大致脉络:把“一句话需求”拆解成“一步步操作”——打开文档、查找替换、逐份处理、另存为PDF,每一步都必须精确到机器能直接执行的程度。

换句话说,自然语言负责定义“要什么”,编程语言负责定义“怎么做”。

3/5

理解的方向:一个面向人,一个面向机器

两类语言面向的对象不同,理解机制也就完全不同。

自然语言面向的是人。它天生带着歧义、隐喻、情绪和语境。

刘玄在解读《我们赖以生存的隐喻》时提到,机器学习如果只是学下棋、开车、聊天,永远成不了人的智能——因为人的理解依赖身体、依赖生活经验。

编程语言面向的是机器。它要求每一个符号都精确、无歧义、可执行。

这里有一个很有意思的反转:过去是人适应机器,用户需要学习机器的语言和逻辑;而现在随着人工智能、机器学习、自然语言处理的发展,交互设计开始以人为中心,机器开始学习并适应人类的交流方式。

换句话说,编程语言是我们理解机器的方式,而自然语言正在成为机器理解我们的方式。

两条通道,方向相反,但都是“理解”。

4/5

表达的镜像:一边冗余模糊,一边精确无歧义

表达逻辑上,两者几乎是镜像的。

自然语言的表达逻辑是冗余的、模糊的。同一件事可以说十种说法,听的人靠语境补齐信息,说错了可以现场改口。

它的表达效率不高,但容错率极高。

编程语言的表达逻辑是精确的、无歧义的。

以仓颉的条件表达式if/else为例:if后面必须跟一对圆括号,里面放条件;接着是一对花括号,里面放第一个分支;再后面是else,同样跟一对花括号,里面放第二个分支。一个符号写错,整段逻辑就崩了。

自然语言的冗余是它的优点——它让沟通在信息不完整的情况下也能进行。

编程语言的精确也是它的优点——它让机器在没有任何语境的情况下也能执行。

5/5

判断的载体:从“行不行”到 True 或 False

语言不只是描述世界的工具,它更是判断的支撑。

人类的判断——“这个方案行不行”“这个人靠不靠谱”——必须先被语言组织起来,才成为可讨论、可修正的判断。

而在编程语言里,判断被压缩成了最纯粹的形态:布尔值,True或False,1或0。

条件判断,是程序从“机械执行”走向“有逻辑”的分水岭。两类语言在这里交汇:语言既是人和机器判断的支撑,又是判断到执行的载体。

讲到这里,仓颉的位置就清楚了。

仓颉编程语言是华为推出的编程语言,专为鸿蒙操作系统开发而设计,支持函数式、命令式和面向对象多种编程范式。

它的名字来自“仓颉造字”。《荀子·解蔽》称“好书者众矣,而仓颉独传者壹也”——传说中仓颉是黄帝的史官,汉字的创造者。

用仓颉的名字来命名编程语言,是一种隐喻——我们希望在机器世界里,也有一套属于我们自己的表达方式。

此前主流的通用编程语言,设计者均在国外。仓颉的意义正在于:它同样是被“设计”出来的语言,只不过这一次,设计者是我们自己。

最后,引用史蒂夫·乔布斯的一段名言共勉:我觉得每个人都应该学习一门编程语言,因为学习编程可以教你如何思考,就像学习法律一样。学习法律并不一定是为了成为律师,而是教你一种思考方式。学习编程也是一样,我把计算机科学看作基础教育,每个人都应该花至少一年的时间学习编程。

对于国人来说,如果想学习编程语言,仓颉是最优的选择。

本文仅为个人观点分享,文中列举的数据与逻辑仅作分析参考,不构成任何决策建议。

  参考资料:

  《人类在13.5万年前就拥有语言》

  《编程语言简史:溯源!》

  《华为发布通用编程语言"仓颉",我系冯新宇教授作为首席架构师领导研发》

  《语言本能:人类语言进化的奥秘》

  《仓颉编程基础及应用》

· END·

格隆汇声明:文中观点均来自原作者,不代表格隆汇观点及立场。特别提醒,投资决策需建立在独立思考之上,本文内容仅供参考,不作为实际操作建议,交易风险自担。

App内直接打开
商务、渠道、广告合作/招聘立即咨询

相关文章

状态管理,是不确定时代的重要职场竞争力

砺石商业评论 · 2小时前

cover_pic

2026年全球铝蜂窝板市场规模达到29.06亿美元

细分市场报告智库 · 2小时前

cover_pic

2026年全球铝箔复合玻璃纤维布市场规模达到6.11亿美元

细分市场报告智库 · 2小时前

cover_pic
我也说两句