中文和英文的比较--各取所长之二(转帖)

Posted on 2012-05-07 11:52  只能在雨中...  阅读(240)  评论(0)    收藏  举报

我在上一篇文章中列举了中文的许多优势,不过一位中文系的同学激动地称我的文章“通篇病句”。很遗憾这位同学没有具体指出我的“病句”,但也很感激,这有力证明了我的观点:中文是一门极复杂的语言。我从小学接受语文教育到现在,也快20年了,还是如此不堪,真是惭愧惭愧,我一定会继续努力。   

     虽然我热爱中文;虽然我认为那些“伪民族主义”的极端分子IQ、EQ二者之一有问题,但我尽量做到这篇文章是理智的,公正的,不带任何感情色彩的:   还得从中文和英文的基本组成讲起。

     据不完全统计,要覆盖92%的中文资料,需要汉字1000个;覆盖99%的中文资料,则需要汉字3000个。相比而言,英文只有26个字母:无论是上个世纪海明威的长篇小说,还是2007年诺贝尔经济学奖得主赫维茨的经济学论文,纯语言描述部分,都只用到这26个字母。我们可以把这26个字母做成键盘作为计算机的输入设备,汉字则不行。美国人示爱,输入一句“I love you”,包括空格在内,需要敲打8次键盘;而中文输入“我爱你”,则必须借助优秀的输入法、组词功能才能完成。  

    以英语为母语的国家(欧洲、北美)在近几个世纪开始崛起,排除“对外掠夺”、“文化”、“地理位置”、“运气”等诸多因素,我觉得与第三次工业革命后“信息技术”的飞速发展是有相当关联的。在计算机世界中,只有“0”和“1”:无论是赫维茨的论文还是李白的唐诗,用计算机表示,就必须转变为“0”和“1”。英文虽不只两个字母,但26总比几万(汉字个数)更接近2。给人的直觉就是计算机处理英文更合适。当然,直觉不说明任何问题,而且英语(26个字母)也肯定不是衔接人类与机器的最好语言。也许我们可以找到一种有20个字母的语言,谁知道呢?  

   由于计算机的计算可以量化,因此我们能很容易看出一些差别:不考虑标点符号,使用计算机描述“I love you”,要用到I、l、o、v、e、y、u这7个字母“符号”(Symbol,或“符号”)和空格“符号”,考虑大小写的话,从53个符号抽取8个出来即可;而中文的“我爱你”,虽只用到三个汉字(符号),但却要从数万个汉字(符号)中抽取。相比而言,后者的计算量是巨大的。  

   一直都有人试图用中文来编程,我个人觉得不太现实。至少在相当长的一段时间内,英语是描述一段逻辑更好的选择:26个字母的排列组合简单准确,if、else、for、while,这些词很容易形成规范;大量汉字和词语,则很难形成一套规范。总而言之,中文编程,可以作为一种“创意”,也可以作为一种“应用”(如“易语言”),但很难替代工业级的开发:汉语言本身的复杂性、多义性造成它无法以最简单的形式来表述逻辑,无法做到最简单,就会付出效率和效果的代价。  进一步思考语言本身的意义:语言的存在,是为了传递信息;或者说,它是信息的载体。这样,我们完全可以利用《信息论》中对信息的量化来解释语言。《信息论》中有一个概念叫做“冗余度”(redundancy)。顾名思义,这个概念指的是“一段信息的冗余程度”(无用信息比例)。冗余度的计算公式我曾学过,可惜忘记了。英文26个字母的单词组合是有规律可寻的。因此,一段英语文字的冗余度就会非常高(也就是说语言规则本身包含了大量的信息量),这样传输的时候,就可以极大的压缩。(具体如何压缩就是编码的知识了,如果数学功底好并且学过概率论,完全可以去买一本《信息论与编码》来研究研究)  

   在信息表达含义不变的情况下,信息(描述)量的下降,就可以节省成本和时间。英语的冗余度经过计算,是71%,也就是说,通过合理的编码,理论上,我们可以把100页的英文书籍压缩为不到30页。而对于特殊的情况,更是可以压缩的更少。  

   但是,是否一定要将冗余度降到最小呢?当冗余度过低的时候,信息的抗干扰能力就非常差了。举个例子:你家有10个保险柜,其中3个存有现金,另外7个是空的(冗余)。一天夜晚,一小偷来盗窃。如果你把这7个(冗余)保险柜都收起来了(没有冗余),那么小偷打开一个就能偷到钱(信息干扰);如果你10个保险柜都放在那(保留冗余),小偷可能费尽心机打开一个却是空的(干扰命中冗余,干扰失效)。  

   结论:中文更适合陶冶情操;英文简朴实在,更适合科技应用。争来争去,何不本着“拿来主义”的精神,各取所需,各尽其用?非常欢迎批评、讨论

 

 

   本文来自:http://www.awflasher.com/blog/archives/1084