4

计算机语言与人类语言

 3 years ago
source link: https://yihui.org/cn/2014/01/comp-human-lang/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

计算机语言与人类语言

谢益辉 / 2014-01-04


蟒蛇社区雄赳赳气昂昂跨进统计学领域,有人呐喊一统江湖,有人拼命抹黑 R 语言(R 语言不是语言),我不想讨论战争问题,这里只是谈谈关于计算机语言与人类语言的一些想法。

一门计算机语言容易被人诟病的地方通常是不符合 “最小惊讶原则”,或者缺乏一致性。PHP 就经常被人黑得没鼻子没脸,例如它的字符串函数名一会儿有下划线,一会儿没有,让人记不清到底有没有。尽管如此,PHP 仍然是最流行的几种语言之一。

如果真的能只有一种语言一统江湖的话,那定是极好的,大家会少去大量的沟通成本,可是这样的事情在计算机世界和人类世界都没有发生。在这两个世界,都是各种语言割据使用者,有时候一种语言甚至还有派生的方言。为什么会有这样的现象?我不知道答案。

如果人类世界有一种语言终将一统江湖,我估计可能会是英语,但这种演进可能需要千万年的时间,尽管现阶段我们能觉察一些趋势。比如年轻一代人喜欢在嘴边挂着英文词汇,越来越多国人涌向英语国家,农村的方言在消逝,等等。作为人类语言,英语有没有最小惊讶的问题呢?想一想这个问题的话,就会发现 “最小惊讶” 在一定程度上只是一个主观判断,路人甲惊讶的东西路人乙可能觉得本来就该如此。一些例子:

英语中的 “你”(You)没有专门的复数形式,即没有专门的 “你们” 这个词,确切地说是单数复数是同一个词,这让我感到很痛苦,因为当别人说 You 的时候,你不知道是指一个人还是指一群人。为了修补这个漏洞,美国人只好说 You guys,而英国人似乎觉得美国人的这种说法很好笑。

复数本身对中文来说就是一个新概念,中文里一个苹果两个苹果都是用 “苹果” 这个词而不会说 “苹果们”,英文里描述多于一个的(可数的)东西就得用复数形式,这在很多情况下何尝不是冗余表达?既然有数词在前面,后面的词何必再变化形式呢?变化就变化吧,还非得对某些名词作不规则的变化,apple 变作 apples,potato 就得变作 potatoes,photo 却是 photos,person 要变成 people,要是所有的复数统统都是加上 s 结尾不行吗?形容词的比较级和最高级、动词的过去时和过去分词都是一样的故事,总是充斥着不规则。高中时我出于叛逆心理经常和同学讲一个不好笑的笑话:good, gooder, goodest。

可数和不可数名词也是一个问题,一个名词是否可数并不取决于它是否真的可以数,例如 “水” 是一个连续的形态,所以不可数可以理解,但为什么 “鱼” 不可数呢?为什么不能说 one fish, two fishes,明明就是一条一条明确可分的。

中文里的 “他” 和 “她” 的发音一样,所以我们口语中用人称代词不会仔细想指代的人的性别,到了英文的世界就很容易犯一个错误,也就是口语中经常 he/she 不分,说着说着就忘了需要先想清楚性别再发音,不然 she is my husband /he is my wife 之类的话说出来也挺吓人的。

英文里经常把结果放在条件的前面讲,也就是 “什么什么,如果什么什么”,这也是一种奇怪的思维方式,从推理或推导的过程来说,应该是先有条件,再有结果。先讲结果的话,听完这半句则不知该作什么反应,很容易反应过早。

从人类语言的角度来说,没有什么最小惊讶,只有最大熟悉问题。英语这种全是漏洞和不规则性的语言都能流行,上哪儿说理去呢。

娇客 情深深雨濛濛

Disqus Utterances Preferences

© Yihui Xie 2005 - 2020

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK