外國人學習電腦相關技術的時候,有一個很大的優勢,就是語言上沒有隔閡。很多電腦專業的術語,其實都是英語當中的日常詞彙,通常是直接把跟那個技術概念在行為
上相一致的日常物品的名字來作為電腦術語。比如pointer(指標),address(地址),assembler(彙編器),compiler(編譯器),linker(連接器),architecture(架構),constructor(建構函式/方法)等。技術專家在發現或發明一個技術概念以後就得起一個好名字,而這個時候他會很自然的在自己的生活經驗裡去尋找,什麼東西跟手頭上的這個技術概念行為接近呢?比如電腦裡的匯流排,各裝置之間的通訊都要經過它來傳遞,沒有旁門左道可走,這種行為不是很類似公用汽車嗎,嗯,不錯,乾脆管這個東西叫bus好了。而當一個學生學習這個技術概念的時候,順序是倒過來的,他會先看到這個術語被別人叫做bus,bus不就是公用汽車嗎,對於公用汽車這個東西他很熟悉,於是再看看匯流排這個技術概念的行為,很好,跟公用汽車很相似嘛,這就好理解了。可見,學習者理解這些術語時,可以藉助自己積累起來的大量的日常生活經驗。這樣一來,通過使用日常詞彙作為技術術語,可以大大地協助學習這加快對技術本身的理解。 相比之下,我們中國人學習技術就沒有這個優勢了。我國學術和科技的傳統是,術語就是術語,術語就一定要夠特別,夠專業,夠陌生,絕不能混同於日常詞彙。這可能跟我們的傳統有關,傳統上中國人喜歡在本行業內設定較高的術語壁壘,各行各業都有行話和黑話,不同行業之間的人在專業上是無法對話的。上次看到電視裡報道老北京天橋的藝人,就介紹了在這些人之間流行有一套黑話,不是這個圈子的人根本聽不懂。影響最大的行話可能就是文言文,古代文人所寫的文言文也並不是當時老百姓之間對話的語言,之乎者也、引經據典那一套講道理的方式也可以看成是知識分子的“行話”,象辛棄疾寫的“元嘉草草,封狼居胥”,譚嗣同在獄中寫的“望門投止思張儉,忍死須臾待杜根”,沒有一點文史知識,一般白丁根本無法理解作者想說什麼,遠不如莎士比亞“活著還是死去,這是個問題”那麼老幼鹹宜,通俗直白。我國人的這種做法,並非沒有道理。有了這些行話,人們可以很容易地區分“圈裡人”和“圈外人”,可以在很大程度上增加外行人理解本行專業知識的“偶發複雜性(accidental complexity)”,一定程度上起到了保護本行業專業知識不外流的作用。曾有人總結中國知識和技術階層的特點,說是“將專業知識作為換取幸福生活的工具”,並非對知識和技術本身誠心以求真。因此,把專業知識的傳播局限在一個相對較小的圈子裡,有助於調節市場的供求關係,提高自己所具有的專業知識在市場上的價值。從這個角度來理解,大概可以知道為什麼中國技術人素來喜歡製造嶄新術語了。 當然,1919年以來,特別是建國以來,在這方面情況有了很大的好轉,但是應該說傳統的習慣是不容易丟掉的,專業術語專業化仍然是大多數人所持的觀點,至今我們的專業學習仍然受到這種實踐的強烈影響。 比如,當我們第一次學習到“指標”、“編譯器”、“匯流排”這樣的術語的時候,我們腦子裡是一片空白。這些詞彙對我們來說是全新的,完全沒有任何生活經驗與之相關聯,需要通過今後的技術實踐來逐漸加深對它們的理解。這就跟外國人有很大的不同,他們可以用一大堆形象的、鮮活的生活經驗來協助他們理解概念,學習技術,指導實踐,我們卻不得不倒過來,通過摸索和低效的技術實踐來建立對這些概念的正確理解,或者更糟糕地,還要修正這些術語給我們帶來的誤解。比如我至今說起“指標”這個詞彙的時候,仍然在潛意識裡想到尖銳的金屬物體,而對於“匯流排為什麼是bus”的理解,也是在首先理解了匯流排的行為之後才發生的“頓悟”。事實上,這都是不應該的,不符合人們學習和認知的規律。 不少源自英語的電腦術語是為大家所熟知的,並且已經廣泛傳播,得到認可。但是從根本上來講,其翻譯是相當糟糕的,完全無助於人們的理解和認識,其結果是,很多人在使用這些技術術語,甚至實踐多年之後,仍然無法對這些技術概念本身形成正確的認識,而這種認識,對於西方學習者來說,很可能是在第一天就達成了的。 例如,在網路編程中,socket是一個關鍵的術語。這個詞在英語裡是“插座、插口”的意思。我們熟悉socket開發之後會發現,如果把socket比擬為電話線插口,至少在很大程度上是貼切的。外國人學習socket編程的時候,一看這個詞,腦子裡馬上就可以想到牆上的電話線插口,從而建立起“socket是聯入通訊線路的端點”的概念,這就協助他們迅速建立了對於socket的正確理解,在之後他學習socket編程細節的時候,這種理解就有助於他們掌握socket的各種行為。而我們通常把這個詞翻譯為“通訊端”,這個詞對於我們來說肯定是全新的,沒有任何生活經驗與之相連,所以我們要花很多時間去理解“通訊端”的行為,直到有一天發生頓悟,原來通訊端的行為跟電話線插口很像! 另一個例子。Port在電腦中是一個被廣泛應用的詞,被我們翻譯成“連接埠”。從單機來看,有I/O連接埠,從網路來看,主機地址由IP地址和連接埠構成。我們可能要搞很久才知道連接埠是個啥東西,然而這個詞在英語裡,意思非常明白,就是“港口”的意思。對老外來說,port很好理解,一個大的海濱城市,可能有很多港口。做進出口貿易的時候,船舶靠港,總要指定具體在那個港口停泊裝貨。同樣的,電腦好比一座大城市,外設I/O資料也好,網路資料也好,要跟電腦互連有無,總要指定一個具體接頭的地點,這就跟port的意思完全對應,理解起來一點障礙都沒有。更妙的是,一旦明白了port背後的意思,學習比較艱深的技術概念也會容易得多。比如Windows的I/O Completion Port,概念上是比較難的。特別是當我們把它譯為“I/O完成連接埠”這樣不倫不類的東西時,就更難理解。而認識到port就是港口,這個技術的概念就好理解一些,我很快會寫另一篇文章來講。 相比之下,一些草率的錯譯危害更大。比如把array翻譯成為“數組”,比如把transaction譯為“事務”,比如把packet switching翻譯成“封包交換”。這裡頭把packet翻譯成分組,雖然不直覺,但可以接受。而把switching翻譯成“交換”,就比較離譜了。Switch在英語裡是“電源開關”、“轉換”的意思,其真實的含義是,根據條件,在可能的幾條線路上選擇一個,把電流或是別的東西轉送過去。我們學習C語言的時候會學習switch語句,這個語句的行為就是switch這個詞的真實含義。因此,把switching翻譯成“選路”更為合適。而翻譯成“交換”,就使人非常迷惑,交換是雙向的,誰跟誰交換了?到底交換了什嗎?這些問題在packet switching的技術概念中都得不到回答,最後只能拋棄對這個術語的理解,囫圇吞棗地把它吞下,使之變為一個乾癟的詞彙。 這樣的例子可以說是數不勝數,因此我們在學習的時候,碰到一個新的術語,最好弄清楚它的英文本義,看看是否能夠藉助生活經驗直接理解,這樣可能會大大地提高學習的效果。
術語專業化,這是長久以來形成的習慣,所以馬上改過來是不實際的。說實話,如果把socket譯成“通訊口”,把data bus譯為“資料巴士”,連我都覺得有點不習慣。所以對於有機會寫書或者寫文章的人來說,可以繼續“術語專業化”,但是應該儘可能給讀者把術語背後的意思講得清清楚楚,這樣有助於讀者理解。這方面我看到做得最好的是謝希仁教授的《電腦網路》,對於不少專業術語都作了通俗的講解。翻譯電腦圖書的人,也應該做這樣的工作。要知道,Richard Stevens可以不解釋socket,因為他知道讀者都明白這個詞的意思,不解釋不會妨礙讀者的理解,不會妨礙他的APUE、UNP、TCP/IP成為曠世經典,而翻譯這些書的時候如果不解釋“通訊端”這個新鮮的東西,那可憐的中國讀者就會很辛苦,還可能會以為通訊端是間諜電影裡什麼接頭暗號之類的東西,那就錯的離譜了。
上一篇:《【雜談】駭客精神祭 挖掘神秘駭客背後的故事》
下一篇:《Xen虛擬技術的發展現狀與紅帽整合情況》