外国人学习计算机相关技术的时候,有一个很大的优势,就是语言上没有隔阂。很多计算机专业的术语,其实都是英语当中的日常词汇,通常是直接把跟那个技术概念在行为上相一致的日常物品的名字来作为计算机术语。比如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成为旷世经典,而翻译这些书的时候如果不解释“套接字”这个新鲜的东西,那可怜的中国读者就会很辛苦,还可能会以为套接字是间谍电影里什么接头暗号之类的东西,那就错的离谱了。
来自:http://blog.csdn.net/myan/archive/2006/05/21/747696.aspx
评论
# joshyupeng 发表于2006-05-21 13:06:00 IP: 60.20.54.*
一针见血,国人很多翻译不经过大脑思考,信达雅无一沾边。让我辈学习起来费劲之极,有些概念现在要改还真麻烦,根深蒂固了。
# amor mio 发表于2006-05-21 16:01:00 IP: 222.88.60.*
文中提到的“packet switching翻译成‘分组交换’”,
孟岩建议翻译为“分组选路”,
我感觉还不够通俗,叫“分组切换”更明了一些。
# 发普洛客 发表于2006-05-21 16:06:00 IP: 221.201.0.*
但是,有些术语已经形成并广泛流传,要改也是很困难的。比如“socket“如果你翻译为“插座“的话,估计也没有几个人能看懂了。翻译中的一个最难处理的东西就是两种文化中不对等的地方,这也不是若干人若干时间能解决的问题。
# onlyxuyang 发表于2006-05-21 21:48:00 IP: 221.232.153.*
马虎........专有词汇也有专有词汇的好处
只要不乱用就可以了
# myy 发表于2006-05-21 22:44:00 IP: 211.90.95.*
通过使用日常词汇作为技术术语,可以大大地帮助学习这加快对技术本身的理解...
相比之下,我们中国人学习技术就没有这个优势了。我国学术和科技的传统是,术语就是术语,术语就一定要够特别,够专业,够陌生,绝不能混同于日常词汇。...
-----------------------
不太认同,“日常词汇作为技术术语”最大的问题就是表达不准确,会产生很多的歧义。即使是老美科学家,在专业领域,也总是在不断制造大量一般人根本看不懂的新词汇,难道他们不会就地取材,直接采用日常词汇么?
# tinyfool 发表于2006-05-22 11:12:00 IP: 219.142.220.*
专业术语我提倡不翻译或者完全直译,这是因为我们目前在这方面还比较落后,我们需要从外文资料中得到帮助,不翻译和直译让我们更容易理解原文
# sdf 发表于2006-05-22 12:40:00 IP: 218.19.245.*
现象是有的,但原因就有点想当然了。英语里的专有词汇同样非常多。
有些东西是无论你怎么译都译不好的。唯一的方法是直接看原文。
# w33v3r 发表于2006-05-22 12:41:00 IP: 211.103.76.*
这些名词,不作翻译最好。
# qscj 发表于2006-05-22 11:33:00 IP: 210.72.232.*
说得好,
特别是socket,我学了很长时间的“套接字”,搞不懂“套接字”是啥东西呀,太神秘了,后来一查字典,靠!原来是“
插座”的意思,如果当“插座”来理解,不就一下子全明白了嘛!
那些家伙故意装深沉,鄙视!!
# dr33 发表于2006-05-21 17:50:00 IP: 202.102.102.*
一针见血。。。。好文。
# tiger 发表于2006-05-22 14:41:00 IP: 61.145.231.*
写的好,这下可说到实处了,佩服。
# qrlvls 发表于2006-05-22 14:45:00 IP: 221.237.71.*
有道理,就和许多人喜欢耍酷一样,其实说穿了一文不值,不知道是为什么
# Tony Bai 发表于2006-05-22 15:05:00 IP: 61.189.35.*
看完后,有启发!
# cyantree 发表于2006-05-22 15:06:00 IP: 222.71.164.*
别光拿计算机说事,查查医学上的专业名词,看看有几个能望文生意
# sogno 发表于2006-05-22 17:18:00 IP: 222.35.14.*
台湾的很多译法还是很贴切的(相对于那边的语言习惯)
Port 埠
# Afreet 发表于2006-05-22 16:37:00 IP: 218.80.205.*
莎翁的东西通俗易懂?好像原著都是中古英文的哎,抽个To be or not to be,样本空间太小~
# armstrong_wang 发表于2006-05-22 20:10:00 IP: 202.120.40.*
原来看计算机书最大的感受就是,都是中国字,可就是看不懂。
# sd 发表于2006-05-23 09:48:00 IP: 202.105.76.*
很多人没见过真正的港口的。
其实很多词汇对我们都是一个抽象的概念。
# kevinleicn 发表于2006-05-23 11:40:00 IP: 219.239.34.*
钟表的指针是不是指向了一个小格子啊?
内存的每个存储单元是不是可以看成一个个小格子呢?C中的POINTER是不是指向了这些小格子啊?
我承认,LZ的文章我没有太仔细去看.这一点我SAY SORRY.但是,我觉得指针翻译的还是很好的:)
# doggyzone 发表于2006-05-23 13:19:00 IP: 61.152.126.*
kevinleicn, 把“架构”说成是"架子的结构",我不知道该说你幽默呢还是浅薄?:) IC里的电子元件是立体的架起来的吗?我看是一层一层平铺的吧。
架构翻译得固然还不错,我更愿意用“体系结构”来代表architecture,更接近architecture的原义,窃以为
# improgrammer 发表于2006-05-23 11:45:00 IP: 222.240.131.*
就“packet switching”说:我认为packet译成“分组”不好懂,分明就是“包”嘛!至于switching用“交换”,倒是循了旧例:程控电话交换嘛,早就有点概念了——联想到早期电影里描写的那些人工接线员,更觉得非常合适。所以,我认为用“包交换”更好。再说了,不是在说“数据包”吗?
# kevinleicn 发表于2006-05-23 10:37:00 IP: 219.239.34.*
pointer(指针) 这让我想起了钟表的指针,很贴切.
address(地址) 我想不出有什么中文词比"地址"更贴切.
assembler(汇编器) 汇编,汇集起来一块编译
compiler(编译器) 编辑并翻译.(难道编译器不是这么工作的么?)
linker(连接器) 很直白,就是把两个东东连接起来嘛.(这也很好联想啊?)
architecture(架构) 架子的结构.(CPU里这么多微电路,在空间上来说是立体的,也就是架起来的嘛.这些架子的结构当然叫架构了)
constructor(构造函数/方法) 构造一个对象的函数,不叫构造函数叫什么?
所以,这些术语并不难,只是LZ缺乏联想能力.
# AsongLaw 发表于2006-05-23 13:36:00 IP: 218.17.79.*
說得很好,但感覺說得有點偏激。
這些詞彙的翻譯用的雖然不是日常生活中的語言,但往往是與其他學科、行業的術語和習慣關聯和相互參照的;僅用生活中的詞彙,恐怕難以表達。
Pointer指路人?誰明白是什麼意思啊。Pointer指路嗎,好像是指的位置和鐘錶的指針簡直就是一個意思啊。
packet switching個人比較容易理解包交換,但分組交換也是有道理的,而且描述了運作的過程,因為packet是被數據分組後打包成packet,而且分組和打包是要付出代價的,忽略了,就表達不了這個意思。
data bus數據巴士?有些人連什麼是巴士都不知道,巴士本來就是舶來詞。但是他知道電是通過電線傳輸的。再說數據巴士是什麼意思啊,是用數據驅動的BUS嗎?電動巴士就聽過,但沒聽過把載人的巴士稱為人巴士的。
# improgrammer 发表于2006-05-23 11:52:00 IP: 222.240.131.*
至于总线、事务、端口、套接字、数组这几个词,影响太大了,以至成了经典,也少见别种译法,就作为经典接受算了吧!
遗憾的是,C中的“分支”语句和包交换中的“交换”,有点骨肉分离的味道了。
# biantaishabi 发表于2006-05-23 13:53:00 IP: 133.9.42.*
恩, 外国人理解起来确实有优势, 不过感觉外国人如果不深入理解内部的结构,也是不那么容易理解这些专业词语的。 比如说bus, 也要在知道总线是被各个信号分时公用以后才能明白其
意义, 有“哦, 这就是公共汽车”的想法。 一个人听到了bus这个词就能想象到电脑的内部结构似乎是不可想象的。
专业的书籍有一般人难懂的术语, 其实很正常。 要是都将术语详细的解释一番, 就变成入门的书了。 术语其实最开始就是为了加大一个词语的信息量, 让人讲解起来更加方便的。
# improgrammer 发表于2006-05-23 11:59:00 IP: 222.240.131.*
面向初学者的书,多在脚注里形象地描述一下术语的来历,当然是很好的主意啦。孟岩先生跟侯捷合作过,深受影响。我们这些道行不高的人,跟着受益啦!
# myan 发表于2006-05-23 11:17:00 IP: 218.247.0.*
to kevinleicn:
除了pointer之外,我并没有批评其他几个术语的翻译不妥。举出这些术语,是为了支持 “很多计算机专业的术语,其实都是英语当中的日常词汇” 这个判断。请自问一下,你是否认真读了文章呢?
说到pointer,C中的pointer跟钟表指针有什么关系?这回可是真的要恕我联想力不佳了。我因为pointer的本意是“指路人”,把意思讲清楚的话,初学者一下子就明白了。说“指针”并不形象。不过既然已经约定俗成,我也不建议去修改翻译,但是在向初学者讲述的时候,最好能把词义讲清楚。就这点要求,没别的。
# googol 发表于2006-05-24 00:23:00 IP: 221.219.58.*
今年的专业词汇确实是越译越糟糕了。像当年李善兰译的微积分(这个人我应该没记错吧~~~老了,唉),真是信达雅的典范。这种现象,也和现在社会普遍重理轻文有关。目前大学连语文都成选修了,怎么让这帮人能做好翻译?
近期感觉译的
比较好的词有:重构(refactor),模板(template)
但打死我都找不到感觉的也不少:c语言运行时(c running-time),
正则表达式(Regular Express)
楼主既然注意到了这点,以后译书的时候可以专门开一章词语介绍,讲讲这些词的来龙去脉哈。相信会很有意思的。(现代版的说文解字?)
# Yang 发表于2006-05-24 14:53:00 IP: 221.203.145.*
有些技术名词 台湾同胞翻译的就比较好 而且候捷好像也有这方面的论述。
说句题外话
比较一下两岸的IT术语的翻译有时候会很有意思的
比如 nest 大陆 称嵌套 台湾称 巢型
希望两岸能够组织一个超越政治的“中文外来科技词语翻译协调机构”在科技词汇上现行下统一 以供中文世界使用
否则数十年以后 可能我们彼此都不能读懂对方的科技文献了
# q 发表于2006-05-24 16:34:00 IP: 218.4.93.*
http://tb.blog.csdn.net/TrackBack.aspx?PostId=747696
# aceouter 发表于2006-06-06 09:29:00 IP: 61.141.251.*
说得很好!
另外借此地批评一下潘爱民,此公前期翻译书籍对overload和override始终不加区分,一概译为“
重载”,导致国内很多学习者都被其误导,每每对虚函数进行override改写时,都称为“重载”。近期书籍虽有所改善,但仍然存在很多其他问题,在此也不一一列举了。
# vvoody 发表于2006-06-24 11:06:00 IP: 61.172.104.*
中国的翻译人才水准不高呀
# Moody 发表于2006-08-18 09:37:00 IP: 89.58.36.*
USB-万用串列汇流排 -_-!