2007年08月31日

《精通正则表达式(第3版)》(即Mastering Regular Expression,3rd Edition)是一本好书。
我还记得,自己刚开始工作时,就遇到了关于正则表达式的问题(从此被逼上梁山):若从文本中抽取E-mail地址,还可以用字符串来查找(先定位到@,然 后向两端查找),若要抽取URL,简单的文本查找就无能为力了。正当我一筹莫展之时,项目经理说:“可以用正则表达式,去网上找找资料吧。”抱着这根救命 稻草,我搜索了之前只是听说过名字的正则表达式的资料,并打印了java.util.regex(开发用的Java)的文档来看。摸索了半天,我的感觉就 是,这玩意儿,真神奇,真复杂,真好用。
此后,用到正则表达式的地方越来越多,我也越来越感觉到它的重要,然而使用起来却总感觉捉襟见肘。当时是夏天,北京非常热,我决定下班之后不再着急赶车回家,而是在公司安心看看技术文档,于是邂逅了这本Mastering Regular Expression。该书原文是相当通畅易懂的,看完全书大概花了我一周的业余时间,之后便如拨云见日,感觉别有洞天——原来正则表达式可以这样用,真是奇妙,真是令人拍案叫绝。
此后我运用正则表达式便不用再看什么资料了,充其量就是查查语言的具体文档,表达式的基本模型和思路,完全是在阅读本书时确立的。也正是因为细心阅读过本书,所以有时我能以正则表达式解决某些复杂的问题。我的朋友郝培强(Tinyfool, 昵称Tiny)曾问过我这样一个正则表达式的问题:在Apache服务器的Rewrite规则中,要求以一个正则表达式匹配“除两个特定子域名之外的所有 其他子域名”,其他人的办法都无法满足要求:要么只能匹配这两个特定的子域名,要么必须依赖程序分支才能进行判断。其实这个问题,是可以用一个正则表达式 匹配的。事后,Tiny说,看来,会用正则的人很多,但真正懂得正则的人很少。现实情况也确实如此,就我所见,不少同仁对正则表达式的运用,不外乎从网上 找一些现成的表达式,套用在自己的程序中,但对到底该用几个反斜线转义,转义是在字符串级别还是表达式级别进行的,捕获型括号是否必须,表达式的效率如 何,等等问题,往往都是一知半解,甚至毫无概念,在Tiny的问题面前,更是束手无策,一筹莫展。
就我个人来说,我所掌握的正则表达式的知识,绝大多数来自本书。正是依靠这些知识,我几乎能以正则表达式进行自己期望的任何文本处理,所以我相信,能够耐 心读完这本书的读者,一定能深入正则表达式的世界,若再加以练习和思考,就能熟练地依靠它解决各种复杂的问题(其中就包括类似Tiny的问题)了。
去年,通过霍炬(Virushuo)的 介绍,我参加了博文视点的试译活动,很幸运地获得了翻译本书的机会。有机会与大家分享这样一本好书,我深感荣幸。500多页的书,拖拖拉拉,也花了半年多 的时间。虽然之前读过原著,积累了一些运用正则表达式的经验,也翻译过数十万字的资料,但要尽可能准确、贴切地传达原文的阅读感觉,我仍感颇费心力。部分 译文在确认理解原文的基础上,要以符合中文习惯的方式加以表述仍然颇费周折(例如,直译的“正则表达式确实容许出现这种错误”,原文的意思是“这样的错误 超出了正则表达式的能力”,最后修改为“出现这样的错误,不能怪正则表达式”或“这样的问题,错不在正则表达式”)。另有部分词语,虽可译为中文,但为保 证阅读的流畅,没有翻译(例如,“它包含特殊和一般两个部分,特殊部分之所以是特殊的,原因在于……”,此处special和normal是专指,故翻译 为“它包含special和normal两个部分,special部分之所以得名,原因在于……”),这样的处理,相信不会影响读者的理解。
在本书翻译结束之际,我首先要感谢霍炬,他的引荐让我获得了翻译这本书的机会;还要感谢博文视点的周筠老师,她谨慎严格的工作态度,时刻提醒我不能马虎对待这本经典之作;还有本书的责编晓菲,她为本书的编辑和校对做了大量细致而深入的工作。
另外我还要感谢东北师范大学文学院的王确老师,在我求学期间,王老师给予我诸多指点,离校时间愈长,愈是怀念和庆幸那段经历,可以说,没有与他的相识,便没有我的今天。
本书是讲授正则表达式的经典之作,翻译过程中,我虽力求把握原文,语言通畅,但翻译中的错误或许是在所难免的,对此本人愿负全部责任。希望广大读者发现错 误能及时与我和出版社联系以便再版时修正,或是以勘误的形式公布出来以惠及其他读者。如果读者有任何想法或建议,欢迎给我写信,我的邮件地址是: yusheng.regex@gmail.com。


如今正则表达式已经成为几乎所有主流编程语言中的必备元素:Java、Perl、Python、PHP、Ruby……莫不如此,甚至功能稍强大一些的文本 编辑工具,都支持正则表达式。尤其是在Web兴起之后,开发任务中的一大部分甚至全部,都是对字符串的处理。相比简单的字符串比较、查找、替换,正则表达 式提供了强大得多的处理能力(最重要的是,它能够处理“符合某种抽象模式”的字符串,而不是固化的、具体的字符串)。熟练运用它们,能够节省大量的开发时 间,甚至解决一些之前看来是mission impossible的问题。
本书是讲解正则表达式的经典之作。其他介绍正则表达式的资料,往往局限于具体的语法和函数的讲解,于语法细节处着墨太多,忽略了正则表达式本身。这样,读 者虽然对关于正则表达式的具体规定有所了解,但终究是只见树木不见森林,遇上复杂的情况,往往束手无策,举步维艰。而本书自第1版开始便着力于教会读者 “以正则表达式来思考(think regular expression)”,向读者讲授正则表达式的精髓(正则表达式的各种流派、匹配原理、优化原则,等等),而不拘泥于具体的规定和形式。了解这些精 髓,再辅以具体操作的文档,读者便可做到“胸中有丘壑,下笔如有神”;即便问题无法以正则表达式来解决,读者也能很快作出判断,而不必盲目尝试,徒费工 夫。
不了解正则表达式的读者,可循序渐进,依次阅读各章,即便之前完全未接触过正则表达式,读过前两章,也能在心中描绘出概略的图谱。第3、4、5、6章是本 书的重点,也是核心价值所在,它们分别介绍了正则表达式的特性和流派、匹配原理、实用诀窍以及调校措施。这样的知识与具体语言无关,适用于几乎所有的语言 和工具(当然,如果使用DFA引擎,第6章的价值要打些折扣),所谓“大象无形”,便是如此。读者如能仔细研读,悉心揣摩,之后解决各种问题时,必定获益 匪浅。第7、8、9、10章分别讲解了Perl、Java、.NET、PHP中正则表达式的用法,看来类似参考手册,其实是对前面4章知识的包装,将抽象 的知识辅以具体的语言规定,以具体的形式表现出来。所以,心急的读者,在阅读这些章节之前,最好先通读第3、4、5、6章,以便更好地理解其中的逻辑和思 路。
相信仔细阅读完本书的读者,定会有登堂入室的感觉。不但能见识到正则表达式各种令人眼花缭乱的特性,更能够深入了解表达式、匹配、引擎背后的原理,从而写出复杂、神奇而又高效的正则表达式,快速地解决工作中的各种问题。

余晟
2007年6月于北京

2006年02月19日

忙活了一整天,终于把搬家的事宜确定下来了,省却了许多麻烦,心里还是颇高兴的。
在小区里拍几张照片,纪念北漂第一年
:)
















2005年10月06日

去青岛,是九月的最后几天做的决定。当时最想听的,是优客李林的《疗伤》。
现在看来,这个决定不错。

梧桐树荫下的道路,盘盘曲曲,上坡连着下坡,总是在意想不到的地方分叉;
花岗岩垒成的老楼,立在两片海湾的交界处,在上面张望,满眼都是绿的树,红的瓦;
多面体形状的屋顶,在侧面与侧面的交界处点缀上一个小小的斜面,就能平添几分趣味;
赭红色岩石堆成的海滩,海浪漫过来,如同铺上一层光滑的锦缎,退下去,露出千沟万壑的表面;

在海边坐着,迎着拂面而来的海风,从宇宙谈到时间,从休谟谈到维特根斯坦……许久未曾享受过的愉悦。

回头,才发现在感觉已经麻木,头脑已经迟钝。北京的生活,如同一重灰色的幔帐,把我和那些聪明、鲜活、愉悦、真切,统统隔离开来,如同上了发条的齿轮一般不停转动,反而有些迷失了自我。

读完了傅雷译的《欧也妮·葛朗台》,翻完了朋友塞过来的《屠夫看世界》,奇怪自己还能找到从前的感觉。
重新拿起王小波的《青铜时代》,居然读出了一些沉重的悲凉,未曾有过的经历。
大卫·利恩导的《日瓦戈医生》,看得唏嘘不已,不需要刻意否定什么,歌颂什么,感动观众,用美,用爱,只需要美和爱,就够了。

面对大海,会想到很多:
隐忍,啜泣、宽恕、祈祷……直到咽气。这是爱,是真爱,是天使的爱,以痛苦生以痛苦死的高傲的爱;
一瞬间,似乎悟到了自己的命运。我只有振翅高飞,努力往天上扑去,在祈祷中等待自己的解脱。

2005年09月18日

60年代:势均力敌

1960年2月3日,法国爆炸了第一颗原子弹。

1960年5月1日,苏联击落了中情局的U-2侦察机。

1960年7月20日,美国第一枚潜射弹道导弹“北极星”(Polaris)发射成功。

1960年8月10日,空军/中情局成功发射了第一颗侦察卫星“科罗娜”(Corona)。

1960年8月17日,联合战略目标计划处(Joint Strategic Target Planning Staff)成立,统管空军的弹道导弹与海军的潜射导弹。

1961年1月6日,赫鲁晓夫宣布支持“民族解放战争”(即保护在这种战争中建立起来的第三世界的社会主义堡垒)。

1961年2月1日,弹道导弹早期预警系统(Ballistic Missile Early Warning System)投入使用。

1961年2月3日,SAC(战略空军司令部)作为空中指挥中心的第一架EC-135“眼睛”(Looking Glass)服役。

1961年4月12日,苏联宇航员尤里·加加林开创了载人航天的新纪元。

1961年4月7日,在古巴,中情局支持的“猪湾行动”(Bay of Pig)宣告失败。

1961年6月,SAC(战略空军司令部)一半的轰炸机和加油机保持在15内分钟起飞的警报状态。

1961年8月13日,柏林墙开始修建。

1961年9月6日,国家侦察办公室(National Reconnaissance Office)成立,负责指挥侦察卫星。

1961年10月26日,美国和苏联的坦克在柏林的查理检查哨对峙了几十个小时。

1961年11月16日,空军的特种部队Operation Farm Gate抵达越南。

1962年6月16日,国防部长麦克纳马拉公开宣布“有限摧毁”(No Cities/Counterforce)的核打击政策(即在核战争中,主要的军事目标应该

是消灭敌人的军事力量而不是它的平民)。

1962年10月14日,空军的U-2侦察机发现苏联在古巴部署核武器的证据。

1962年10月27日,第一批10枚“民兵”(Minuteman)弹道导弹进入预警状态。

1962年10月28日,苏联同意撤出古巴的导弹,古巴导弹危机结束。


1962年古巴导弹危机结束后,肯尼迪总统在白宫会见了发现苏联导弹的空军机组人员。

1963年8月5日,美国、苏联和英国签订了《部分禁止核试验条约》(Limited Test Ban Treaty)。

1963年8月30日,美国和苏联在五角大楼和克里姆林宫之间建立了全天候电传热线(teletype hotline)。

1964年4月21日,处于警戒状态的弹道导弹的数目超过了轰炸机的数目。

1964年10月15日,赫鲁晓夫下台,勃列日涅夫上台。

1964年10月16日,中国爆炸了第一颗原子弹。

1964年12月22日,SR-71黑鸟战略侦察机首飞。

1965年1月1日,空军接收了第一架SR-71侦察机。

1965年2月18日,麦克纳马拉把核战略由“完全摧毁”改为“确保摧毁”(Assured Destruction)。

1965年3月2日,支援南越军队的空中打击开始。

1965年5月,空军第一型喷气式运输机C-141A“星”(Starlifter)列装。

1966年3月10日,法国武装部队退出北约。

1968年1月12日,空军公布了一种武器系统,能够由战术单元搭载,提供在高速路、公路、公园和自来水厂之类场合执行军事任务的能力。

1968年1月16日,北约采取14/3战略,即用“灵活反应”(Flexible Response)取代大规模报复。

1968年8月20日,苏联和华约成员国的军队武装镇压了捷克斯洛伐克的政治解放运动“布拉格之春”。

1968年11月12日,勃列日涅夫宣布:苏联的卫星国必须走和苏联同样的道路。

1969年3月2日-8月13日,苏联和中国在边境发生武装冲突。

1969年6月24日,国家安全决策第16号备忘录(NSDM-16,National Security Decision Memorandums)提出“战略充足”(Strategic Sufficiency)政策。

1969年7月20日,美国宇航员第一次登上月球。


70年代:剑拔弩张之中的缓和

1970年7月30日,在“(苏伊士)运河消耗战”(War of Attrition)中,以色列空军击落了5架苏联飞行员驾驶的米格战斗机。

1970年9月,C-5运输机列装。

1970年12月16日,SAC接收了第一批FB-111。

1970年12月30日,第一个中队的多弹头“民兵III”导弹正式服役。

1972年2月21-28日,尼克松总统访问中国。

1972年5月26日,《第一次限制战略武器条约》(SALT I)和《反弹道导弹条约》(ABM)条约签订。

1973年8月15日,美国空军最后一次在越南上空执行任务。

1973年10月12日-11月14日,在赎罪日战争(Yom Kippur War)期间,空军的Nickel Grass运输机再一次为以色列提供空援。

1974年3月4日,国防部长施莱辛格公布了“有限核打击”政策。

1975年4月30日,西贡政府向北越投降。


F-4战斗机正准备降落在由守卫和军犬看护的南越机场。当时的理论是,如果南越垮台,东南亚的其他国家就会如“多米诺骨牌”一样全都倒向共产主义。

1977年6月30日,卡特总统撤销了B-1轰炸机的计划。

1978年12月16日,中美建交,北京政府取代台北,获得美国的承认。

1979年6月18日,《第二次限制战略武器条约》(SALT II)签订。

1979年12月27日,苏军入侵阿富汗,推翻了阿富汗政府。


80年代:面对邪恶帝国

1980年1月3日,因为苏联入侵阿富汗,根据参议院的决定,卡特总统宣布美国退出SALT II。

1980年3月31日,空防司令部停止运转。

1980年7月25日,第59号总统令确立了“抵消战略”(即要美国努力保持军事(包括核)力量、应急计划及指挥控制能力,并使苏联领导人相信“以核武器进行任何一种规模的突击或在战争的任何阶段使用核武器,不可能导致战争的胜利,不管苏联人会给胜利下什么样的定义。”)。

1980年8月22日,国防部揭秘了存在的侦察技术。

1981年1月18日,F-117A隐形轰炸机秘密首飞。

1981年10月2日,里根总统重新启动了B-1轰炸机计划。

1982年7月1日,在英国的RAF Greenham Common,美国空军试射了第一枚陆基巡航导弹(GLCM,Ground Launched Cruise Missile)。

1982年9月1日,空军航天中心建立。

1982年12月,空射型巡航导弹列装。

1983年1月17日,国家安全决策指令第75号(NSDD-75)要求遏制苏联势力的扩张。

1983年3月8日,里根发表“邪恶帝国”演讲。

1983年3月23日,里根发表“星球大战”演讲。

1983年9月1日,苏联击落了韩国007号民航客机。

1985年10月10日,洲际弹道导弹“和平守护者”(PeaceKeeper)列装。

1986年4月15日,在爱多拉多峡谷行动中,空军的F-111战略轰炸机从英国起飞,轰炸利比亚之后返回英国,中途共进行了六次空中加油。

1986年10月,里根在与戈尔巴乔夫举行的雷克雅未克峰会中,坚持保留战略防卫主动权(Strategic Defense Initialtive)

1986年10月1日,B-1B轰炸机列装。

1987年5月5日,最后一枚“泰坦”2型洲际弹道导弹(Titan II ICBM)解除警报。

发射井中的“泰坦2”导弹。1987年,美国空军的最后一枚第二代洲际弹道导弹退役。

1987年6月12日,里根在柏林发表“推倒柏林墙”(Tear Down this wall)的演讲。

1987年12月8日,美国和苏联签订《中导条约》(INF)。

1988年12月7日,戈尔巴乔夫宣布放弃布尔什维克主义。

1989年7月17日,B-2A轰炸机首飞。

1989年10月10日,柏林墙被拆毁。

1989年11月,柏林墙的倒塌是苏联崩溃的明显征兆,2年后苏联即告解体。


1990-91年:苏联的崩溃

1990年7月24日,SAC终止了持续29年的Looking Glass空中警报任务。

1990年8月2日,伊拉克入侵科威特。

1990年10月3日,东德和西德合并。

1990年11月17日,《欧洲传统武力条约》(CFE,Conventional Forces in Europe Treaty)条约签订。

1991年1月17日,沙漠风暴行动开始,2月28日以伊拉克投降结束。

1991年7月1日,华沙条约正式作废。

1991年7月31日,美国和苏联签订第一阶段削减战略武器条约(START)。

1991年8月19日,共产强硬派试图在莫斯科发送政变,8月21日宣告失败。

1991年9月27日,美国战略轰炸机解除了全天候警报状态。

1991年12月26日,苏联解体,冷战结束。

2005年08月29日

总是失眠,一两个月了,开始还如 Jbbox 说的一般 ,醒来的时候满脑子都是程序,现在醒来已经不知道自己想的什么了,只是睡不着,看来有更深层次的原因,只是我现在还不能体察到。

在家的时候,睡不着,父亲就会来给我按摩。按照《家庭按摩术》自己练就的手艺,虽然不如理发店的小工专业,却别有一重温暖的感觉——分不清到底是方法更科学,还是感情更醇厚;其实,也不需要分清楚。

又想到那双大手,那是经历了多少风霜、包含多少记忆的手呵:
他们曾陪父亲坐过一次次硬座,只为了用卧铺补助给年幼的我多买几个玩具;
他们曾在营口调试一整条全自动生产线,两个工程师,整整三个月,我的普通话,就是小时候在那里学会的;
他们曾抱回了整套《少年自然百科全书》,从那里面,我知道了门纲科目种属的概念,知道了生物还有个“学名”;
他们曾捧起过《鲁斯兰与柳德米拉》,捧起过《小驮马》,伴随着父亲富有感染力的朗读,我领略了普希金长诗的魅力;
他们曾无数次地握住龙头,见证了全家骑车去往市郊水库游玩的快乐;
他们曾在第一次组装矿石收音机之后几十年,又为我装了一台,至今,每每想到自己电路学的一知半解,仍然感到愧对父亲的一片苦心;
他们曾把住家门前樟树的树枝,为玩气枪的我在树杈里放上一个自制的枪靶;
他们曾抓过无数的昆虫、小鱼、田螺,采过无数的蕨,父母和我一起去田间草地玩耍的经历,回忆起来总是那样温馨和甜美;
他们曾拿起各式工具,对家具做出种种改造,小时候父亲曾把饭桌的腿各锯掉一截,这样高度就正适合我做作业;
……
他们也曾在父亲大怒时拍过桌子,包括对单位领导,也包括我;
他们也曾因为我考试成绩不够好,弹琴不够用功,决绝地锁上过家门;
他们也曾高举过皮带,那时候父亲高喊“你再去玩电游,看我不抽死你”,家里饭桌上的那个印记,保存至今;
……

回忆起来,总是零零散散,不成章法,然而每一点每一滴,都弥足珍贵;
那些恋爱、慈祥或者狠心的面容,给现在的我留下的,只有怀念和慨叹。

有些人说起“不得志”三个字时,总是带着几分酸溜溜的味道。对此,我是很不以为然甚至有些愤慨的:
一个人,一个堂堂正正的人,被束缚在狭小的单位,只能评助理工程师的职称,却要干许多“高工”不能干的活;
即使如此,做事认真,出了一点成果,也会被人嫉妒,遭人打压(大学里,我遇到政法学院待我如自家人的M老师,记得他在离开学校时曾有些自嘲地说过“你干得好,别人就会来整你,怪谁呢,还不是怪自己,怪自己出头了”,这几句话我简直铭刻在心);
况且,想要撒手甚至离开,竟然也不可得(早几年,领导上曾对父亲说“你就想退休,还早呢,至少我任上不要想这种事情”,言犹在耳)。

在这种情况下,“得志”已经成为永远无法企及的奢求,只有“不得志”,才是应有的正常的状态吧。
哈耶克在《通往奴役之路》里面讲,没有选择,就是奴役。他说的真对,真贴切。

2005年08月05日

坐公交车上班,行到中关村,听见一个闷闷的声音:
等等,别开门,我的手机丢了。
循声望去,说话的人三十岁上下,个子不高,稍微有些发胖,满头大汗,却有些不知所措,一看就是特别老实的人。

“干嘛不开门啊,八点半还要上班呢,迟到了谁给补工资啊?”
车厢后面,几位年轻女士已经开始抱怨了,看穿着,应该是在大公司上班的所谓“白领”吧。

“先别开门,我们有规定,乘客丢了东西我们也要负责的。”
售票员说了这话,后头的声音降了下去。

“现在不开门有什么用啊,那两个人早就下去了,”靠近车门的一位女士说,“下回自己小心点啦!”
“对啊,刚刚那站下去两个拿手包的人,就是他们,别找啦!”另一位男士附和道。

没有其他人说话,失主显然有些不知所措,又不甘心。忽然想起了什么,央周围人打他的手机,看看是否能有一线希望。
“呼叫转移——”,旁人把手机递给他听。

“丢了就算了呗,也找不回来了,别耽误我们上班啊”
……

“那——好吧,开门吧。”
“你确定开门啊?”
“嗯——嗯——唉——嗯,开门吧”
……

于是汽车依旧行使,好像什么事情也没有发生过。

不知怎么地,又想到路上随处可见的各种垃圾——饮料瓶、塑料袋、宣传单……,即使在二环以内,也是如此。上次从国贸出来,不禁觉得好笑:在这种垃圾满地走的地方,也有所谓“写字楼”,也生活着所谓“白领”?
还记得有一次,也是坐公交车,一位衣着光鲜的女士,随手就把窗户推开,那么旁若无人、大刺刺地把一团用过的纸巾扔出去,再优雅地关上窗户,这一番举动,看的我目瞪口呆,心惊胆颤。

古希腊时期,有一段著名的对话:
问:既然术业要有专攻,那为什么政治人人都可以参与?
答:因为女神赐予人类两样素质——正义感,和廉耻心,正因为人人都有这两样素质,政治才成为可能。

也许,正是因为缺乏正义感,也缺乏廉耻心,对我们来说,政治才成为不可能——只有权术,没有政治,因为我们不配。

2005年07月18日

看了看这几天的访问统计,发现从Google对《关于翻译的一点杂感》似乎比较感兴趣,大陆,台湾,香港,都有好几个关键词可以检索到,神气,再写一点,权当狗尾续貂吧。

这次主要谈一些具体的词语翻译,我以为很多时候译文看来生硬,问题就处在这些地方。

so…that…
这个搭配,照教科书,或者字典,翻译成“如此……以至于……”,是不能算错的。
但是,问题的关键在于,“如此……以至于……”本不是地道的汉语,顶多是能表达这种意思而已。而且,汉语中本来有表达这层含义的词语,只是翻译时需要考虑考虑,根据上下文选择。
因此,
He was so angry that could not speak any word.
我不会翻译成“他是如此生气,以至于说不出话来”,我会说“他气得说不出话”。

when……
When的含义有很多,通常都取“at or during the time that, while”的意思。因此很多人翻译的时候,一见到when,就条件反射地用“当xx时”取代。
我以为,这样有两大弊端:第一,When的含义有很多,根据Merriam-Webster’s Collegiate Dictionary 11th Edition,When的含义还有:2.  in the event that  : IF ;3a. considering that  ;3b. in spite of the fact that 。其次,如果生硬地用“当xx时”翻译when,很多时候容易造成累赘,出现类似“当他有空,而你又没有空,而我又有空时”的句子,尾大不掉。
因此,遇到When…,我建议灵活处理,很多时候可以用“如果xxx”取代,不但更符合原意,也避免了尾大不掉的现象。
最常见的就是在关于条件的叙述中,我总觉得,“如果你发出一个请求而对方没有反应,就应该……”要好过“当你发出一个请求而对方没有反应时,应该……”。

harm
这个词我见过非常多的翻译,感觉都很别扭。原因似乎在于,译者无法摆脱“伤害”的束缚,翻译来翻译去,总是要跟“伤”或者“害”打交道——不是“损伤”,就是“损害”。
于是,“伤害性能”、“损害性能”之类的搭配,也就堂而皇之地出现了。
我以为,翻译harm时,不必受“伤害”这个词的束缚,也就是说,译文中不必出现“害”字或者“伤”字,因为不带这两个字的词,可以表达同样的意思,而且更自然。实际上,这也是汉语的特点之一——不需要用那么多“关键词”来串联和表达信息,读者自然能够体会。
因此,有时候我会把harm翻译成“影响”——本来嘛,汉语中的“影响”就包含这层意思,“影响了心情”、“影响了发挥”,我们平时就是这么说话的——“影响程序的性能”,“影响(干扰)市场的运转”,我觉得都要好过“伤害”和“损害”。

顺便再提一下sensitive
我初学C++时,总是无法理解“C++语言是是大小写敏感的”其中的“敏感”到底是什么意思,总是感觉非常别扭,后来查字典才知道,sensitive在这里全然不是“敏感”的意思,而是have the ability to feel, to sense,也就是说“有能力感知,有能力辨别”的意思。因此,正确的翻译似乎应该是“C++语言是区分大小写的”。

小结一下,我以为,很多时候“想当然”,拿着现成的模式“硬译”,一方面容易因为没有理解原文的真正含义造成差错,另一方面也容易造成译文的生硬,这种思维定势是我们在翻译中应当努力戒除的。

下面再说几个译文中常出现的词,我也有些自己的看法。

使
这个字现在可以说是用滥了,到处都在用。这或许是受"make"之类“使动”英文词汇的影响太甚,而汉语本身是不需要这么多“使”的,更不用说“使xxx得到了xxx”之类的准病句。
“这条路使城市的交通状况得到了改善。”
这种句子我看了觉得非常不舒服,完全不用那么折腾——“使”的施动者和“得到了”的受词,完全是主动-被动的关系嘛——“这条路改善了城市的交通状况”,这不是挺好吗?如果说用“使”是受了英文的影响,那么后一个句子里的“改善了”,不同样是及物动词吗?
而且,“使”的滥用,还容易造成另一个蹩脚的现象——一般人们说“使”,都会说“xx使xx如何如何”,“xx使xx不如何如何”(比如,“使我没有认识到”),这是很少见的。不过“使”字乱用之后,这样的句子也就不可避免的出现了——“他们直接使他从肉体上不能说话”(别笑,我还记得《姊妹革命——美国革命与法国革命启示录》里就有这样蹩脚的句子)。

进行了
这也是一个用滥的词,到处都在“进行”——“对他的名誉进行了诋毁”,“对产品进行了降价”,“对xx进行了慰问”……文字之美,损失殆尽。究其原因,大概在于,白话文受英文影响,把很多动词当作名词使用,比如上文中的“诋毁”、“降价”、“慰问”,而这些词本来是直接作动词,后面可以接宾语的——试想,“诋毁他的名誉”、“降低产品的价格”、“慰问xx”,是不是更简练,更自然?

2005年07月05日

早上看到一篇文章,名字是《寻找有意义的教育——一个北大毕业生的自白》。
题目挺大,可我总觉得不那么舒服。我是一贯反感大词的,即使面对这样看起来颇有些理想色彩的大词,也会心存警惕。
果然,通读全文,给我印象最深的,就是作者太过严重的的一厢情愿、越俎代庖的情结。
的确,在大学能够接触很多中学闻所未闻的东西,简直能够给人脱胎换骨的影响,于是产生了“改变基础教育现状的强烈冲动“,这都无可厚非,甚至是很好的事情。
但是,作者似乎太希望自己的“悲剧”不要在学生身上重演,太希望去“启蒙”学生,太希望去“改造”学生,因而“每接一届学生,我首先要做的就是给学生洗脑”,即使多次碰壁,仍然“没有否定第一阶段的教育理念,依然首先对学生进行‘洗脑’”,抱着这种不正常的想法去教学生,根本不讲究教育的方法和基本规律,注定是要碰得头破血流的。

把我在bbs上的讨论贴拿过来,放在这里:

晚生不才,但读书时学校开始的各种教育学、心理学课程,好歹也学了一点。
至少我明白,教育本身,是有内在的规定性和逻辑性的,“教育学”研究的,就是研究
教育规律的学科。这一点,在大学以前的教育阶段,体现的尤其明显——大学生的心智更为成熟,师生之间的交流完全可以更加平等,而中小学的教育并非如此,尤
其是中学阶段的教育,应当是非常讲究方法性和技巧性的。这篇贴子里头提到的“最近发展区”,就属于教育学中很基本的概念, 是中学教师应该掌握的。

当然,有人可能会说,甭拿那些概念来唬人,有的老师完全没学过也不懂那些玩艺儿,照样当得非常好。我想,
这多半可以解释为,他们在实践中摸索到了门道,或者说掌握了教育内在的规律,只是无法明确表达出来而已,并不是他们不懂。哈耶克让我们不要忽视“无法言传的知识”、
“墨会的知识”,原因就在这里。

扯远了,具体到本文来说,我认为作者对于教育本身,并没有很清晰的认识。姑且不论他对教育内在规律认识的贫乏,我以为他对手段和目的的关系都没有清醒的认识。
中学教育的目的到底是什么?
他的教育方式是否能够帮助学生达到这种目的?
似乎这些问题,他都没有思考过,或者说没有明确的答案。更多的是一厢情愿式的越俎代庖,因为自己的某种情结,就不顾对方的反应和感受,固持己见,我行我素。
不客气一点说,这是一个失败的教育者,一个不合格的教师。

发感慨或许可以激情万丈,义薄云天,但真正做事还是需要踏踏实实,认认真真。
有不对的,就要承认,有不会的,就要学习。
这是我的经验。

p.s.中学教育的目的是什么?我也没有完整的答案。
但我想,至少有两点应该确认:
第一点是培养学生正常的感情,包括对大自然的热爱,对生命的尊重,以及对美好事物和感情的追求和信仰;
第二点应该是培养好奇心,培养学生求知的习惯和欲望。柏拉图讲,一颗年轻而又充满好奇的心,很容易被哲学的蛇咬伤,一辈子摆脱不了。我倒不希望人人都“被哲学的蛇咬伤”,但是一颗年轻而充满好奇的心,的确很容易被真正的学问的蛇咬伤,这也是相当幸福的事情了。

2005年07月03日

这几天又看到有关盗版的Blog,尤其是virushuo的几篇blog:
盗版10年
再谈盗版
写的很不错,条理很清晰,我就不行,我那点三脚猫的能耐,只能瞎扯淡。
可是咱终究是耐不住寂寞,在自家blog里面撒撒野,写点儿东西,总不过分吧。

看了一些为盗版辩护的论调,觉得有几个问题需要说明。
很多人认为,“没钱”所以买盗版,这是无奈的,不得以的抉择。
初看起来的确有些道理,但是我认为,结合整个事件的背景,理清楚来龙去脉,就能够看出问题:事情并不是以“没钱”为原因,以“用盗版”为结果的。恰恰相反,“没钱”正是盗版存在的结果——在奔驰宝马面前,我们不会说“没钱买,所以我得去偷”,因为大多数人都知道知道,自己负担不起奔驰宝马,即使能负担得起,也没有那个必要去奢侈。
然而,盗版把几乎所有软件的获得成本降低到能够忽略不计的地步。于是,用惯了盗版,奢侈惯了的人,在正版的价格面前,自然容易产生“没钱,所以我要用盗版”的想法——而因果恰好在这里被颠倒了,不是因为你没钱,压根就是因为,那软件根本不该你用嘛。
也许,这话说出来有些难听。可是你仔细想想,学个C语言要用Visual Studio,学个图像处理要用PhotoShop,学个打字要用Office……而且还都要用最新最豪华的版本。我自己都觉得荒谬,这些高级玩意儿,本来就不是用来干这个的嘛——大奔是挺舒服,也不能用来拖蔬菜啊;陆地巡洋舰是挺好,也不能用来犁地吧?

还有人说,软件定价那么高,是一种阴谋,想要掠夺我们的财富。
在我看来,这也属于无稽之谈。
市场经济的一个特点就在于,卖方的劳动只有得到买方的承认,才能获得报酬。从这个意义上说,市场经济也是一种尊重人的、大致平等的经济。
那么,企业辛辛苦苦地开发出能给用户提供效率的软件产品,定价销售,怎么就叫“阴谋”,怎么就叫“攫取财富”了?觉得人家是“阴谋”,你完全可以不买不用嘛。
扯远点说,经济学上有个概念,叫做“消费者剩余”,即消费者对某个产品的最高心理出价和实际购买价格(也就是企业定价)之差。每个消费者在购买商品时都会获得剩余,至少不是赔本的。如果某个消费者的最高心理出价低于售价,就不会购买,因为没有人强迫你。企业的定价,本来就是希望尽可能多地榨取“消费者剩余”。如果一款软件定价过高,大多数消费者认为不能获得消费者剩余,“用脚投票”,开发公司就会因此蚀本,原因就在于制定了错误的价格政策,而与什么“阴谋论”根本扯不上关系。
再退一步说,国外不少正版用户还在用VS6,Win98等等我们早就“淘汰”的产品呢,人家计算机一样学的好,用的好。不让你用WinXp,VS.net的盗版,就是什么“数字鸿沟”“数字壁垒”了,多新鲜哪。

最后再扯点题外话,早几天我的朋友Patrick跟我说,他们母公司的日本人用Excel真是牛。因为用的正版,觉得花了代价,就要把所有功能,至少是对自己有价值的功能,全都利用起来。他给我看了一份日本人的Excel文档,非常详尽,智能化程度和美观程度,都是我从未见过的——实际上,我见过的Excel文档,绝大多数还停留在电子表格 6.0(就是九五年我在Windows 3.1上用过的Excel 6.0)的水平——不需要花代价,也就没有学习的动力。因此,至今还停留在只会画简单的课程表的水平,至今还停留在敲一堆空格去“对齐”文档的水平!

Update:
又看到一些言论,说如果不用盗版的某某软件,就根本没法开发,没法挣钱。
接着发一点感慨:
我在《盗版是打破垄断的利器么?》一文中指出,盗版的一大特点就是缺乏价格机制。弗里德曼告诉我们,价格有三种作用: 一是传递信息,二 是激励最有效的生产,三是分配产品。错乱的价格体系,必然带来信息、生产和分配的错乱,最终造就的,就是一个错乱的、畸形的软件市场。
说明白一点,我认为,如果软件产品的价格体系不是因为盗版而错乱的话,某些开发可能根本不会进行——因为“正常情况下”它们就是必定会蚀本的。这里,又一次颠倒了因果关系。

2005年06月28日

昨天上班时,一位朋友问我下面这个句子怎么翻译:
McData blames slow sales of its new Intrepid 10000 (i10K) director on confusion over its roadmap caused by its acquisition of Computer Network Technology Corp. (CNT) (Nasdaq: CMNT – message board)

考了几分钟,我的答案是:
McData认为,新推出的Intrepid 10000(i10k)导向器之所以滞销,原因在并购CNT扰乱了自己的发展规划。
发过去之后,对方连声说好。自己反复看了看,似乎也还行,比较通顺,基本的意思也都传达了。

回想一下,从大三考G之后,至今自己翻译的东西,也有二三十万字了,总归是有些感受,在这里梳理梳理吧。

关于翻译,我想,最重要的问题是,什么是翻译?
我赞成刘宓庆先生的观点,语言不过是表达思想的工具(或者说,语言是思维的外壳)。
翻译的过程,就是先通过原语理解作者期望表达的意思,然后用按照译入语的规范,将这种含义尽可能准确地表达出来的过程。
或许有人会觉得这个答案极为普通,但以我的经验表明事实并非如此。
在实际的翻译过程中,很容易地,也不自觉地,就会拘泥于形式,被词汇、句子结构所困扰,最终无法自拔(其实也就是拘泥于外壳反而偏离了本质),只能写出极其丑陋的“英式中文”,也就是余光中先生所批判的“畸形欧化”。
比如,上面这个句子,最常见的翻译,就是尾大不掉的“xxx将xx归咎于xxx的xxx”,被一个blames束缚了思维,而所有的修饰成分,全都用“的”字结构翻译,从句数目少尚且可以应付,数目一多,就出现“的的不休”了。
我曾经看过上海某翻译学博士翻译的Ayn Land的作品,打开就可以看到这样的诗句译文:
她好像一个单翼的天使一样。
我的感觉是,美感顿失,光华全无。中文本来没有严格的数量词规定,很多时候并不需要把a, an之类词翻译出来,更何况两个“一”字重复,颇为累赘。“她像单翼的天使”,“她像个单翼的天使”,“她好似单翼的天使”,我以为都比上面这个蹩脚的翻译好。

其次,翻译的标准是什么?
严复先生提出的“信、雅、达”三字标准,如今基本已被推翻。尤其是“雅”,严复的本意是按照他偏爱的桐城派散文的风格翻译英文。有学者提出“信、雅、贴”,“贴”即贴切,贴切原文,原文是何种风格,译文就要努力做到何种风格,这是比较可取的。

当然我更欣赏奈达的“等效翻译”理论。所谓“等效翻译”,指的是,对读者来说,译文能够产生和原文基本相同的效果——原文读者看到某一段落是何种感觉,译者就要力求让译文读者获得同样的感觉。可以说,思果先生反复告诫的“翻译要像中文”,也是这个意思。
“等效翻译”基本可以算作翻译观念上的一次革命,不过也存在很多问题。以我个人的感觉,对于同一文本,不同的译者获得的感受未必相同,因此对“效果”的理解从一开始就存在差异;其次,等效翻译往往需要考察不同语言环境的细微差别,奈达曾举例说,给爱斯基摩人翻译《圣经》中的话“像雪一样白”,话倒是完整的译出来了,但读者完全没有任何感觉——爱斯基摩人终日生活在冰天雪地,对于雪的白,他们有着尤其细腻的感觉,“雪有好多种颜色,怎能仅仅用一个‘白’来形容呢”。
话虽如此,但在这里要做到“等效”,恐怕必须对原文做比较大的修改,奈达可能支持这样做,我仍然认为修改太大有违愿意。

最后扯一点中英文的差异,纯粹是个人的感觉,狗尾续貂。
英文句子的逻辑结构是非常明显的,主谓宾、定状补,条理分明。如果能够梳理清楚这些结构,再难的句子也不在话下。余光中先生说,英文句子就好像一串葡萄,找到了脉络,就可以用两个指头拎起来。
中文则相反,除去“畸形欧化”的烂文,个人感觉纯粹的、自然的中文,是没有分明的逻辑结构的,与其说像一盘珍珠,毋宁说更像从个人思维中汩汩流淌出来的溪水。
举例来说,“英文句子的逻辑结构是非常明显的,主谓宾、定状补,条理分明”这个句子就完全是我用中文思维写出来的,后面三个分句与第一个分句之间,并没有紧密的逻辑关系,但意思是连贯、一致的。
因此,在英译中时,我一般都会把长句拆分为一组意义连贯的短句,以求符合中文的习惯。

其它的感想还有很多,今天先写这些吧。