在网上看到过很多有关汉语和英语比较的文章,他们写的都很不错,并且列举了大量的事例来证明汉语或者英语是优秀的。不过,我想用计算机软件设计的观点,来理性地分析汉语和英语的优缺点。经过分析,我可以断言:汉语是世界上唯一一种面向对象的高级语言。而以英语为首的其他语言,则属于密码型的索引语言。下面通过问答的方式来解释这种观点,如有不妥之处,请大家指摘。
一.什么是“对象”?
在计算机世界里,对象(Object)就是人们要进行研究的任何事物。小到螺丝钉,大到飞机,都可以被看成是对象,并且有具体的属性和操作。以“狗”为例:颜色、体重等是它的属性;而吃饭、撒娇、警卫等则是它的操作。同样,对于语言来说,一个汉字或者一个单词也可以被看成对象。再次以“狗(dog)”为例:发音和拼写可以被看成是属性,而它的定义则可以被看成是操作。
二.什么是“面向对象”?它有哪些主要特点?
面向对象主要是指程序的设计方法。它主要有三大特征:封装、继承、多态。
三.什么是封装?
在软件设计中,封装是指将接口与实现显式地分开,并对内部的实现提供保护(即掩藏实现细节)。封装防止了程序相互依赖性而带来的变动影响,是保证软件部件具有优良的模块性的基础,是面向对象设计的前提条件。
四.如何考察自然语言的封装性?
封装的两个特点就是:接口和实现分开以及保护内部的实现。同样的道理,我们可以用下列四个标准来考察自然语言的封装性:
1.外形接口:所有词汇的外形是否是一致的。
2.定义接口:特定词汇的定义是否只有一个。
3.读音接口:特定词汇的读音是否只有一个。
4.拼写方法是否固定的。即不会随着场景的变化而变化。
五.汉语和英语具有封装性吗?
(1)首先来考察一下汉字。
1.汉字的外形接口:众所周知,所有汉字的外形都是四四方方的方形。
2.汉字的定义接口:大多数汉字的定义只有一个,当然也存在数量不多的多义字。
3.汉字的读音接口:绝大多数汉字的读音只有一个。当然也存在多音字(一般也是多义字),最典型的是“重”字,它有两个读音zhong和chong,前者是分量大、主要的意思,后者是重复繁冗的意思。但是像这样的多音字数量很少,读音也最多只有两个,常见的多音多义字只有多个。
4.汉字的拼写方法是否固定的,不会随着场景的变化而变化。虽然汉字有繁简之分,但是不可能在一段文章中同时出现繁简两种字体,因此姑且不论。
(2)再来看看英语:
1.英语单词的形状不是固定的,有短有长。短的有象“I”(我),只有一个字母。而长的有
“pneumonoultramicroscopicsilicovolcanoconiosis”(矽肺病),总共有45个字母。
2.英语中的多义词太多了,比如我们熟悉的“book”,不仅有书和课本的意思,还有预订、登记、立案的意思。再如“man”,除了有人和男人的意思之外,还有操纵、配备人员的意思。
3.英语单词的读音会随着拼写的变化而变化。
4.英语单词的拼写方法不是固定的,会随着场景的变化而是变化。不仅字母有大小写、名词有复数形态,动词还也有让人头疼的时态变化。复数形态的例子:“book”复数词是“books”,“man”复数词是“men”,拼写和读音都发生了变化。
动词时态的例子:
一般现在时:
Idoiteveryday.
(我每天做这样的事)
一般过去时:
Ididityesterday.
(昨天我做了这件事)
一般将来时:
Ishall/willdoittomorrow.
(明天我要做这件事)
现在进行时:
Iamdoingitnow.
(现在我正在做这件事)
现在完成时:
Ihavedoneitalready.
(我已把这件事做好了)
一个do需要do、did、doing、done这4种拼写方法来表达做的各种状态,而汉语仅仅加一些常用的副词就可以表达了。
结论:汉语是封装性的语言,但并不完美,因为存在少量的多音字和多义字。而英语则完全没有封装性可言。
六.什么是继承?
在程序设计中,继承是指子类自动享用父类的属性和方法,并可以追加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,这也是面向对象的主要优点之一。继承又分为单重继承和多重继承。单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继承了多个父类的属性和操作。熟悉IT的人都知道,Java是一种单重继承语言,而C++是一种多重继承语言。想提醒的是,在计算机语言中,具有相同或相似性质的对象的抽象就是类。也就是说,对象的抽象是类,类的具体化就是对象。类是可以继承的,对象是不能被继承的。但是自然语言中并没有类的概念,为了说明的方便,下面的解说中使用了对象继承的说法,请计算机专家们谅解。
七.如何考察自然语言的继承性?
只有一个标准:是否大规模地存在“字造字”、“词生词”的现象。
八.汉语和英语具有继承性吗?
(1)首先说说汉字,汉字的一大特点就是形音字众多,形音字具有“意音双表”的功能。举一个简单的例子:围、圆、园、圈。这4个字的外围都是“口”字,是用来表意的;而中间的韦、员、元、卷则是用来表音的。用软件设计的观点来看,这就是单重继承,被继承的是“意”,而“音”则是它们各自的特征。除了单重继承之外,汉语里也存在大量的多重继承,这就是词组。“词组”本来的定义是:由多个汉字所组合而成的语法单位。但是,从程序员的角度来看,“词组”的定义是:从多个对象继承而来的新对象。
下面例子分别标注了词组分解前后的汉英解释。可以一目了然地发现,无论是拼写或是定义,词组都是对汉字的完美继承,而英语则毫无瓜葛。
飞机(plane)=会飞行(flight)的机器(machine)
工人(worker)=在工厂(factory)工作的人(man)
解放(liberate)=解开(unlatch)后释放(release)