ZT/ 在網上看到過很多有關漢語和英語比較的文章,他們寫的都很不錯,並且列舉了大量的事例來證明漢語或者英語是優秀的。不過,我想用計算機軟件設計的觀點,來理性地分析漢語和英語的優缺點。經過分析,我可以斷言:漢語是世界上唯一一種面向對象的高級語言。而以英語為首的其他語言,則屬於密碼型的索引語言。下面通過問答的方式來解釋這種觀點,如有不妥之處,請大家指摘。 一.什麼是“對象”?
在計算機世界裡,對象(Object)就是人們要進行研究的任何事物。小到螺絲釘,大到飛機,都可以被看成是對象,並且有具體的屬性和操作。以“狗”為例:顏色、體重等是它的屬性;而吃飯、撒嬌、警衛等則是它的操作。
同樣,對於語言來說,一個漢字或者一個單詞也可以被看成對象。再次以“狗(dog)”為例: 發音和拼寫可以被看成是屬性,而它的定義 則可以被看成是操作。
二.什麼是“面向對象”? 它有哪些主要特點?
面向對象主要是指程序的設計方法。它主要有三大特徵:封裝、繼承、多態。
三.什麼是封裝?
在軟件設計中,封裝是指將接口與實現顯式地分開,並對內部的實現提供保護(即掩藏實現細節)。封裝防止了程序相互依賴性而帶來的變動影響,是保證軟件部件具有優良的模塊性的基礎,是面向對象設計的前提條件。
四.如何考察自然語言的封裝性?
封裝的兩個特點就是:接口和實現分開 以及保護內部的實現。同樣的道理,我們可以用下列四個標準來考察自然語言的封裝性:
1.外形接口:所有詞彙的外形是否是一致的。
2.定義接口:特定詞彙的定義是否只有一個。
3.讀音接口:特定詞彙的讀音是否只有一個。
4.拼寫方法是否固定的。即不會隨着場景的變化而變化。
五.漢語和英語具有封裝性嗎?
(1)首先來考察一下漢字。
1.漢字的外形接口:眾所周知,所有漢字的外形都是四四方方的方形。
2.漢字的定義接口:大多數漢字的定義只有一個,當然也存在數量不多的多義字。
3. 漢字的讀音接口:絕大多數漢字的讀音只有一個。當然也存在多音字(一般也是多義字),最典型的是“重”字,它有兩個讀音zhong和chong,前者是分量大、主要的意思,後者是重複繁冗的意思。但是像這樣的多音字數量很少,讀音也最多只有兩個,常見的多音多義字只有100多個。
4.漢字的拼寫方法是否固定的,不會隨着場景的變化而變化。雖然漢字有繁簡之分,但是不可能在一段文章中同時出現繁簡兩種字體,因此姑且不論。
(2)再來看看英語:
1.英語單詞的形狀不是固定的,有短有長。短的有象“I”(我),只有一個字母;而長的有“pneumonoultramicroscopicsilicovolcanoconiosis”(矽肺病),總共有45個字母。
2.英語中的多義詞太多了,比如我們熟悉的“book”,不僅有書和課本的意思,還有預訂、登記、立案的意思。再如“man”,除了有人和男人的意思之外,還有操縱、配備人員的意思。
3.英語單詞的讀音會隨着拼寫的變化而變化。
4.英語單詞的拼寫方法不是固定的,會隨着場景的變化而是變化。不僅字母有大小寫、名詞有複數形態,動詞還也有讓人頭疼的時態變化。
複數形態的例子:“book”複數詞是“books”,“man”複數詞是“men”,拼寫和讀音都發生了變化。
動詞時態的例子:
一般現在時: I do it every day.(我每天做這樣的事)
一般過去時: I did it yesterday.(昨天我做了這件事)
一般將來時: I shall/will do it tomorrow.(明天我要做這件事)
現在進行時: I am doing it now.(現在我正在做這件事)
現在完成時: I have done it already.(我已把這件事做好了)
一個do需要do、did、doing、done這4種拼寫方法來表達"做"的各種狀態,而漢語僅僅加一些常用的副詞就可以表達了。
結論:漢語是封裝性的語言,但是並不完美,因為存在少量的多音字和多義字。而英語則完全沒有封裝性可言。
六.什麼是繼承?
在程序設計中,繼承是指子類自動享用父類的屬性和方法,並可以追加新的屬性和方法的一種機制。它是實現代碼共享的重要手段,可以使軟件更具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,這也是面向對象的主要優點之一。繼承又分為單重繼承和多重繼承。單重繼承是指子類只能繼承一個父類的屬性和操作;而多重繼承是指子類可以繼承了多個父類的屬性和操作。熟悉IT的人都知道,Java是一種單重繼承語言,而C++是一種多重繼承語言。
想提醒的是,在計算機語言中,具有相同或相似性質的對象的抽象就是類。也就是說,對象的抽象是類,類的具體化就是對象。類是可以繼承的,對象是不能被繼承的。但是自然語言中並沒有類的概念,為了說明的方便,下面的解說中使用了對象繼承的說法,請計算機專家們諒解。
七.如何考察自然語言的繼承性?
只有一個標準:是否大規模地存在“字造字”、“詞生詞”的現象。
八.漢語和英語具有繼承性嗎?
(1) 首先說說漢字,漢字的一大特點就是形音字眾多,形音字具有“意音雙表”的功能。舉一個簡單的例子:圍、圓、園、圈。這4個字的外圍都是“口”字,是用來表意的;而中間的韋、員、元、卷則是用來表音的。用軟件設計的觀點來看,這就是單重繼承,被繼承的是“意”,而“音”則是它們各自的特徵。
除了單重繼承之外,漢語裡也存在大量的多重繼承,這就是詞組。“詞組”本來的定義是:由多個漢字所組合而成的語法單位。但是,從程序員的角度來看,“詞組”的定義是:從多個對象繼承而來的新對象。
下面例子分別標註了詞組分解前後的漢英解釋。可以一目了然地發現,無論是拼寫或是定義,詞組都是對漢字的完美繼承,而英語則毫無瓜葛。
飛機(plane) = 會飛行(flight)的機器(machine)
工人(worker) = 在工廠(factory)工作的人(man)
解放(liberate) = 解開(unlatch)後釋放(release)
計算機(computer) = 能計算(calculate)的機器(machine)
(2)英語也有繼承,那就是複合詞。比如:
football 足球
handwriting 書法
reakwater 防浪堤
或許是因為單詞長度限制(即缺乏封裝性)的原因,它們數量很少,所占的比例極低。對中國人來說有點難以理解的是,很多應該是複合詞的單詞,卻被不相干的詞彙所代替,比如:
豬 pig 公豬 boar 母豬 sow 小豬 piglet 豬肉 pork
牛 cattle 公牛 bull 母牛 cow 小牛 calf 牛肉 beef
羊 sheep 公羊 ram 母羊 ewe 小羊 lamb 羊肉 mutton
漢語的話,只需要7個基本漢字:豬、牛、羊、公、母、孝肉,其它的都是組合而成的。而英語則需要記住15個沒有任何關聯的詞彙。再比如:
一月 January
二月 February
三月 March
四月 April
五月 May
六月 June
七月 July
八月 August
九月 September
十月 October
十一月 November
十二月 December
漢語是用數字加上“月”表達月份,而英語卻使用12個完全沒有共同特徵的單詞來表達月份。
結論:漢語具有完美的繼承特徵。英語從總體上來說,還不能被稱為具有繼承性的語言。
九.什麼是多態?
多態是指相同操作接口的方法 在不同的對象中調用可以實現的不同結果。多態和繼承是對同一現象的不同描述,繼承是強調對象的共同特點,而多態則是強調對象的靈活性。繼承是設計層次上的概念,而多態是繼承在運行時的表現。
十.如何考察自然語言的多態性?
我們已經知道:多態的前提條件是繼承;好處是可以在運行時強調對象的靈活性。具體到自然語言,我們可以這樣理解:多態性的詞彙可以在相互交流的時候,增加理解的靈活性。具體做法就是在交流的時候,僅僅使用一些概念性的詞彙,讓不同的聽眾或讀者有不同的解讀。
所以,衡量自然語言是否具有多態性的指標是:
1.是否大量存在能表達概念性的詞彙。
2.這些概念性的詞彙是 被具體的詞彙所繼承。強調繼承的原因有兩點:一是因為多態性的定義,另外一個原因是它可以增加由虛到實、由概念到具體的聯想速度。
十一.漢語和英語具有多態性嗎?
(1)漢語的多態性無處不在,主要表現在兩個方面:一是有很多的被繼承的、能表達概念性的詞彙,另外一個就是漢語拼音。
首先說說被繼承的概念詞彙,它們主要在口語中被使用。比如:“我要坐車去上海”。這裡的車(car,vehicle)是一個概念性的詞彙,具體是哪一種車,則根據聽眾的不同而不同,可能是汽車(car)、出租車(taxi)、公共汽車(bus)、火車(train)等等。與英語不同,漢語的“車”字是被繼承的,所以人們會很快地聯想到汽車、出租車、公共汽車等詞組。而使用英語的人們則需要從記憶中搜索(而不是聯想)與車相關的交通工具。類似“車”的詞彙在漢語裡有很多,再比如:“去商場買一點肉”。這裡的肉(meat)有可能是豬肉(pork),也有可能是牛肉(beef),或者是雞肉 (chicken)等等。
再說說漢語拼音的多態性,漢語拼音有4個音調,在沒有標註音調時候,需要根據上下文的理解來決定是哪一個音調。比如 zhong guo的音調應該是zhōng guó。 即使是在標註音調場合,也需要根據理解來決定是哪一個漢字。再比如zhōng guó的漢字應該是“中國”,而不是“忠幗”。
由此我們也可以看出來:多態一方面可以降低了交流的準確性、另一方面也提高了說話的靈活性和信息量。
(2)英語雖然也有大量類似vehicle、meat的概念詞彙,但是卻沒有被廣泛地繼承。另外想提醒的是:英語的時態不是的多態性的表現。原因在於:
1.英語時態的主體是動詞(即動作),它強調了動作執行狀態的不同(沒做、正在做、做完了),而不是執行結果的不同。
2.多態是指具有相同特徵,但是因為對象不同而導致結果不同。它強調是執行結果的不同。
因此說時態不是多態。以軟件設計的觀點來看,如果對象的狀態發生了變化,就必須更換成另外一個對象,這是一件不可想象的事情,會導致對象無限增多從而失控。
結論:漢語具有多態性,而英語並不具備。但是多態對於語言來說,可能沒有太多的作用。