* draft 尚未完成,请勿转载
2005-02-16 整理发布初稿
(c) 2005 张恂 版权所有
引子
为何一本烂译入选 2004 年十大电脑图书?当然,什么叫“烂”,可能每个人有每个人的判断标准,我的标准是
一段看了让人顿觉特别恶心(英文叫 disgusting)的名家名言:
对于中国读者来说,选择的工作量还得再增加一点:挑选好的译本——糟糕的翻译能够将一本杰作变成狗屁不通的垃圾。其实挑选译本有一个简单的办法:看看它的索引是否完整准确,看看译者是否写了一篇够格的译序。如果译者对书中的专业词汇没有把握,他(她)就不敢制作一份中英文对照的索引;如果译者对书中讲述的内容没有整体概念,他(她)就写不出一篇足以吸引读者的译序;如果译者不能为自己的翻译工作感到骄傲,他(她)就不会自信满满地对读者说些自己的话。所以,如果一本书既没有译序也没有索引(就像那本被糟蹋了的《J2EE设计开发编程指南》那样),你无法期望它的译者对它投入更多的心血;如果一本书有漂亮的索引、精彩的译序,甚至还有一篇旁人的推荐和出版人语,那么你多半可以放心,它至少不会带你误入歧途。
原著就已经如此参差,再加上引进翻译的滤波转换,中国读者就更容易在摆满红皮书的货架前晕头转向了。
红皮书统一的封面设计构成了它无法错认的风格,但也容易流于同质化,使读者无从选择,甚至因为一次失败的阅读体验而败坏了对红皮书的整体印象。
—— 熊节,《选择你的红皮书》
通篇(全局性)错误
错误等级:![]()
1)“工艺” 与 “工艺学”、“工程” 与 “工程学” 不分
工艺和工艺学,工程和工程学,怎么可能是一回事呢?道理很简单,比方,熊节与熊节学(研究熊节的学问)显然就不是一回事。
为了预防有人狡辩,我再举一个例子:豆腐是咱们中国人的传统美食。妻子用新买的豆腐做了一道菜,丈夫品尝后,立即夸道:“今天的豆腐真不错,以前好像没吃过,你知道是用什么工艺做的吗?”妻子于是告诉他,这是市场里的阿姨推荐的,用的是新工艺,所以她特地挑的,既然口感好,那么下次还买这个。可是,如果丈夫这么问:“今天的豆腐真不错,以前好像没吃过,你知道是用什么工艺学做的吗?”我想,这位妻子一定会像我们一样,感觉有点儿莫名其妙,因为——生活的语言里,没有这样问的!
可见,工程与工程学、工艺与工艺学 分别是不同的概念,如下图所示:
我们看到,在全书中,craft,craftsmanship 被熊名家随意地译成“工艺”、“工艺学”、“手艺”或“技艺”中的任一种,不晓得区分。主要有两种情况:一,针对 craft 的翻译,“工艺”与“手工艺”不分;二, craftsmanship 与 craft 不分,都可以译作“工艺”或“工艺学”。例如:
P.38 标题
软件开发工艺的复兴
分析:是什么工艺的复兴?传统工艺,还是现代工艺?纯手工工艺,还是自动/半自动工艺?只要开发软件,工艺必然是有的,这不是句废话吗?等于没翻。
原文:The Resurgence of the Craft of Software
Development
正译:软件开发手工艺的复兴
P.100 第二段.
工艺学的传统还给管理者们另一条经验:精通一门手艺本身就是目标。在传统的工艺(甚至是那些需要体力和手工技巧的工艺,例如铁匠)中
...
分析:正好这里共有三个 craft,第一个被译成“工艺学”,第二个被译成“手艺”,第三个被译成“工艺”。
原文:The craft tradition has another lesson for management.
Mastering any craft is a goal in itself. In traditional crafts -
even those requiring physical skills and manual dexterity, such
as a blacksmith ...
正译:
第10章 P.112 第三段.
工艺学这种学徒、技师和师傅的模式可谓比比皆是
分析:译者错误地把基于学徒、技师和名匠(大师级工匠)的传统手工艺模式等同于工艺学(泛化的概念),根本就是概念不清。
原文:... the craft model of apprentices,
journeymen, and masters was widespread
正译:学徒、技师和名匠的手工艺模式相当盛行。
第10章 p.112 第三段.
一代又一代,一个世纪又一个世纪,工艺学的模式保证了这些技艺能够得以流传。
分析:同上,craft 竟然变成了 “工艺学”
原文:The craft model successfully passed craft
skills across the generations and through centuries of time.
正译:... 这种手工艺的模式成功地使得(工匠们的)技艺(手艺技能)得以流传。
类似的例子真是举不胜举
2)“工匠”、“高级工匠” 和 “师傅” 不分
craftsman 与 master craftsman 怎么可能是一回事呢?后者可以译作大师级工匠,或者名匠,或者高级工匠/匠师,或者大师,反正不能置 master 而不顾。(craftsman 在一些文献中也被译作“匠师”)
P.104 倒数第一段.
软件工匠都是经验丰富的开发者 ...
原文: master craftsmen are experienced developers.
分析:显然,作者的原意在这里被损失掉了
更多的例子 ...
3)“学徒” 和 “学徒制” 不分
这个错就更加莫名其妙了
4)Software Craftsmanship 果真是“软件工艺”吗?
这里,由于无法区分 craft 和 skill 有啥不同,熊节只好含糊地译成“软件工艺肯定了开发者的技艺”。
原文:Software craftsmanship is an acknowledgment
of the craft and skills of the developers.
正译:软件匠师制是对开发人员的手艺和技能的一种正视(承认)。
5)耸人听闻的 “软件工程颠覆说” 从何而来
“颠覆软件工程,开发回归人本”,这个在许多人看来不可思议的、“充满人性光辉”的号召,偏偏就出现在我们的那些聪明透顶的出版物和传媒广告上。媒体会辩解说,这又不是我们说的,是
Pete McBreen 在《软件工艺》中说的,我们媒体没有责任。果真如此吗?
究竟谁是“颠覆软件工程”的始作俑者?是 McBreen 吗?
是韩磊吗?
是熊节吗?我看,就是他!
在我的追问下,熊节开始退缩了,他辩解到:我又没说 McBreen 要颠覆软件工程,他颠覆的是软件工程的话语体系。那么,什么是“话语体系”呢?在《中华读书报》2004
年 8 月 4 日发表的《超越阐释:技术文本的语言学解读》一文中,熊名家对“颠覆软件工程”的来龙去脉终于进行了一番精辟、圆满的阐释。
《软件工艺》对于话语体系的这一颠覆和扩展,即使从最保守的角度来说,也是意义深远的。
作为读者的我们在阅读一部著作时,除了努力理解作者对世界的阐释之外,恐怕还有另一项任务:尝试解读支撑那阐释的话语体系——那游戏的规则。
所以,绕来绕去,颠覆软件工程,颠覆软件工程的话语体系。
出于对语言学的偏爱。McBreen ,“学徒、技师、工匠”用来代替“软件工程师”、“项目经理”、“系统分析员”、“架构师”,这也能叫做一个话语的“体系”?如果不能带来实质性的好处和改变,
熊节终于使出了最后的一招,超越阐释!什么叫“超越阐释”?熊名家写道,“即便摆在面前的文本打上了“技术著作”的标记(比如《软件工艺》),当它的意图是要引介一种全新的思维()时,我们也必须超越理性的阐释,用审美的眼光、用心去体验它带来的话语冲击”我实在搞不懂,请原谅,我们是搞科技的:如果超越了理性的阐释,如果
McBreen、熊名家的话语颠覆理论完全没有道理,无法成立,这一切岂不成了胡诌?这样的“话语冲击”在熊名家眼里欣赏起来当然是很美的,看了之后应该心怦怦直跳才对,但恐怕在科技界看来,这种超越了理性的体验真是极丑无比、令人反胃!好了,因为实在是解释不清楚了,所以熊名家干脆摆起了太极推手,奉劝大家都不要再解释了,一起超越吧!用心灵感应好了——请闭上双眼,默念“熊大师带领我们一起超越”五分钟,您体会到熊大师赋予我们的新境界了吗?反正熊名家的意思,那有这么容易理解的?脑袋笨的、不开窍的是无法得道的。
我终于发现,熊名家的审美学、艺术学与我们的科技美学有着很大的不同。
小结
为什么会发生这种现象?
我们知道,词典上的一个英文单词往往有着多种中文含义,可与多个中文词对应。这就要求我们根据英文原著的具体语境细心挑选,不但要符合原文的意图,还要符合译成后的中文语法、语义准确和一致的要求,这样才能最终确定一个英文词的译法。如果不管 context 是什么,译好的中文通不通,随便捡个对应的中文词来 copy & paste,往往会闹出一些笑话,不仅文不达义,还有可能造成逻辑上的错误。所以,在正式开始翻译之前,把原著一些关键核心术语的译法搞搞清楚(可能需要多次反复),我想这是一名专业译者所应具备的起码的专业素质。
我的分析结果是,熊名家的脑子里极有可能压根儿就没有这些概念,碰到
craft、craftsmanship、master craftsman、apprenticeship 这些基本的词汇,大概就是凭着他那非凡的艺术审美和敏锐信手拈来。有人告诉我,熊节原来读的是机械工程与自动化,啊
... 简直令人难以置信!学工程的怎么会不知道什么是工艺,什么是工艺学?后来又有人说,熊节是大学没毕业的,噢 ... 那就可以解释了。
序言、前言、目录部分的差错
仅在一部译作的目录部分就出现如此众多的错误和缺陷,依本人愚见,此绝非称职的专业译者所敢为。
| 序号 | 熊译 | 分析 | 原文 | 正译 | 错误等级 |
|---|---|---|---|---|---|
| 1 | [序言 P.II 第一段] 学徒、工人和技师,所有人都在同一个团队中一起工作 ... | Apprentices, journeymen, and craftsman all work together as a team | |||
| 2 | [序言 P.III 第三段] 工艺学所针对的是个人的能力,对你的工作,对你个人的发展,对于你的职业,工艺学能给你更多的帮助。(47 字) | 看走眼了,完全译错,是不是译得太匆匆? | Craftsmanship stands for taking personal responsibility: for your work, for your personal development, and for your profession. | 匠艺代表了对于你的工作、个人发展以及职业承担起责任。(26 字) | |
| 3 | [前言] 与科学和工程学相比,软件工艺是另一种完全不同的教义,但又能与这两者很好地共存,并从中获益。 | Rather,craftsmanship is a different tradition that happily coexists with and benefits from science and engineering. | |||
| 4 | 第1章“足够好”的软件——庶民的软件工程 | 在本书的其他部分我们看到熊节译成“大批量制造”... 而这里竟然出现一个“庶民”,实在让人摸不着头脑,纯粹是瞎蒙吧 | Good Enough Software - Software Engineering for the Masses | (略) | |
| 5 | 第4章 软件开发的工艺 | The Craft of Software Development | |||
| 6 | 与传统工艺学的比较 | Parallels with Traditional Craftsmanship | |||
| 7 | 第5章 重拾软件开发 | 完全看不懂,把最关键的人漏掉了。 |
Putting People Back into Software Development | 请重视软件开发中的人 | |
| 8 | 第二部分 软件工艺 |
工艺与工艺学分不清。那么,这本书为什么不叫《软件工艺学》呢?该译成什么,看来完全由熊名家的心情随意决定。 |
PART 2 Software Craftsmanship | ||
| 9 | 工艺学致力于改善软件开发的现状 | Craftsmanship Is About Getting Better at Software Development | |||
| 10 | 工艺学鼓励开发者编写优秀的软件 | Craftsmanship Encourages Developers to Write Great Software | |||
| 11 | 第6章 无须执照的工艺学 | Chapter 6 Craftsmanship Is the Opposite of Licensing | |||
| 12 | 第7章 工艺学对系统的用户有何影响 | How Craftsmanship Affects the Users of Systems | |||
| 13 | 第三部分 软件工艺隐含的意味 | 啰嗦 | PART 3 Implications of Software Craftsmanship | 软件匠师制的含义 | |
| 14 | 第8章 顾客与工匠的关系 | 遗漏重要的关键词 | Chapter 8 Customers Have a Different Relationship with Craftsman | 客户与工匠的特殊关系 | |
| 15 | 利用开发者之间的差异 | 遗漏重要的关键词。
然而,在下一节的“但我们如何知道开发者有多优秀呢”,惜墨如金的熊节居然把句前的转折词“But”也译了出来,前后对比,看来对于我们这位翻译名家而言,什么该译、什么不该译,心里完全没谱。带来的直接后果是,我们不知道在什么时候、在什么地方熊的作品会不会遗失重要信息,反正没准儿 ... |
Start Exploiting the Difference in Productivity Between Developers | ||
| 16 | 软件工艺有益于长期使用的软件 | Software Craftsmanship Values Long-Lived Applications | |||
| 17 | 第9章 软件工匠不是雇工 | Software Craftsmen Are Not Hired Hands | |||
| 18 | 软件工匠与管理者的关系 | Software Craftsmen Have a Different Relationship with Their Managers | |||
| 19 | 软件开发的根本从来没有改变过 | The Basics of Software Developments Haven't Changed All That Much over the Years | |||
| 20 | 家有一老,如有一宝 | Experienced Old-timers Are a Vast, Untapped Resource | |||
| 21 | 软件工艺要求全新的管理方式 | Managing Software Craftsmen Is Different | |||
| 22 | 学徒是比学校教育更有效的学习方式 | Apprenticeship Is Much More Effective Than Schooling | |||
| 23 | 技师是工艺学传统的关键 工艺学传统已经延续多年 |
Journeymen Are the Key to the Craft Tradition The Craft Tradition Has Endured for Centuries |
|||
| 24 | 第11章 工艺的掌握 | Mastering the Craft | |||
| 25 | “掌握技艺”意味着使用稳定的技术 | Mastery Implies the Use of Stable Technologies | |||
| 26 | 技艺需要花时间去掌握 | Developing Mastery Takes Time | |||
| 27 | “掌握”意味着承担起传递工艺的责任 | Mastery Implies Taking Responsibility for Passing on the Craft | |||
| 28 | 工匠挑选学徒和技师 | 吃掉了“他们的” | Craftsmen Choose Their Apprentices and Journeymen | 工匠挑选自己的学徒和技师 | |
| 29 | 第12章 工艺的掌握,学徒比培训更有效 | Apprenticeship is More Effective Than Training to Learn a Craft | |||
| 30 | 学徒不是学校 | 学徒当然不是学校了?! | Apprenticeship Is Not Schooling | ||
| 31 | 学徒审查师傅的作品,并从中学习 | Apprentices Learn by Reviewing the Work of the Master | |||
| 32 | 从低风险的任务开始 | Apprentices Start with Low-Risk Applications | |||
| 33 | 学徒期是时间和精力的投资 | An Apprenticeship Is a Significant Investment of Time and Energy | |||
| 34 | 第13章 技师在工艺学传统中的位置 | Where Journeymen Fit in the Craft Tradition | |||
| 35 | 第14章 敏捷方法代替缜密的软件工程 | Agile Methodologies Are an Alternative to Systematic Software Engineering Processes | |||
| 36 | 第15章 鱼与熊掌可以兼得? | Faster,Better,Cheaper or on Time,on Budget,on Mars - Pick Two | |||
| 37 | 第16章 ... 尺度和复杂度 | 怎么不知道 size 是规模(大小),尺度是 scale ? | Size and Complexity Matter | ||
| 38 | 变化的代价很高——如果你不允许变化的话 | Change Can Be Expensive Unless You Allow for It | |||
| 39 | 文档总是错的 | Documentation is Always out of Date and Wrong | |||
| 40 | 精确的估算很难得到 | Producing Accurate Estimate Is Very Expensive | 获得准确的估算相当昂贵 | ||
| 41 | 第17章 经验——项目成功的指示灯 | Experience - The Best Indicator of Project Success | |||
| 42 | 最后,开始大范围搜索 | If Persoanl Recommendation Fails, Conduct a Wide Search | |||
| 43 | 考察工匠的作品 | Carefully Examine a Craftsman's Portfolio | |||
| 44 | 尽早解决问题 | Deal with Mistakes in Team Selection as Early as Possible | |||
| 45 | 回避极端技术 | Avoid Bleeding-Edge Technology If At All Possbile | |||
| 46 | 第18章 是软件应用,不是软件项目 | Think Applications, Not Projects | 考虑软件应用,而非软件项目 | ||
| 47 | 开发源码,软件工艺的最爱 | Software Craftsmen Prefer Nonproprietary, Open Source Tools | |||
| 48 | “为测试和维护设计”不能一蹴而就 | Design for Testing and Maintenance Is Not Rocket Science |
主要章节的差错
若要一段段地去对,恐工程浩大,故这里只能摘取一些精彩片断,以助我们体察熊名家的翻译风格。
| 序号 | 熊译 | 分析 | 原文 | 正译 | 错误等级 |
|---|---|---|---|---|---|
| 1 | 第3章 P.23 第三段. 以汽车的设计为例,设计团队需要学习自动化工程学、人体工程学、空气动力学的知识,需要研究市场的需求,还需要了解各种颜色、图案对消费者心理的作用。在随后的设计过程中,这些知识都将被转化为设计、工具和机器。(100 字) |
这两个词太眼熟了,所以自信满满,以为懂了,结果完全瞎译。知道 ergonomics 和 aerodynamics (不查字典我也不知道),却竟然不知道 automotive (automobile 的形容词)engineering 是汽车工程, paint 是油漆,这好像连大学英语一、二年级的水平也没有吧,真是匪夷所思。即使再笨的,知道是讲汽车的,猜也能猜出来。油漆(paint)和油画(painting)总分的清吧 ... 而且还特别啰嗦 | What the design team has learned about automotive engineering, the needs of the marketplace, color, ergonomics, paint, and aerodynamics converted into designs, tools, and machines. |
设计团队所学到的关于汽车工程、市场需求、色彩、人体工程学、油漆和空气动力学的知识都将转化为设计方案、工具和机器。(56 字) | |
| 2 | 第4章 P.38 第二段. |
非常规翻译,大概漏看了 due to 吧 | As manufacturing improved further, the craft of the blacksmith nearly died out due to competition from mass-produced items. | ||
| 3 | 第三段. 很多年来,软件工程一直把持着软件开发领域的话语权力。但是,在非官方的程序员圈子里,软件开发工艺仍然保持着勃勃生机。个人计算机的早期历史就是一个很好的例证:那时几乎所有的软件系统都是由单个的开发者和小规模团队来开发的。与此相似,开发源码和UNIX社群也一直采用工艺学的方式来开发软件。后来,一位评论家半开玩笑地说,“软件工程师用Ada,软件工匠用C”,也算是为这种工艺学正名了。 | For many years, software engineering has dominated the conversation about software development. In the background, the craft of software development was nevertheless very much alive. The early hisory of personal computing is a testament to individuals and small teams that made it happen. Similarly, the open source and UNIX communities take a craft approach to software development. This idea was brought home when one reviewer joked that "Software engineers use Ada; craftsmen use C." | |||
| 4 | 第二部分 引言 P.43 这不是因为他们缩在象牙塔里不问世事,而是因为他们学到的数学模型和观念根本与现实脱节。 |
看来熊名家的翻译一点也不准,totally 与 not quite 是一回事吗? | ... not so much in the sense of Ivory Tower academics, but in the sense of mathematical models and ideas not quite matching up with reality. | ||
| 5 | 第6章 P.51 第一段. 软件工艺关心的问题是“如何完成工作”。 |
意见如前 | Software craftsmanship is about getting the job done. | 软件匠艺的重心是完成工作(而非如何完成)。 | |
| 6 | P.53 第二段. ... 原因就是难以定义“软件工程的知识主体” |
没听说过一个常见的专用术语,译者多半是软件工程的外行。 | 软件工程知识体系 | ||
| 7 | 第7章 P.74 第二段. 与软件工程相比,软件工艺最大的差异就在于:开发者和用户将更好地理解对方 ... |
如前,细节把握不住 | The key difference with software craftsmanship is that developers and users will understand ... | ||
| 8 | 第8章 P.75 第二段. 为了维护自己的信誉,开发者就必须矫枉过正,揭穿软件领域中流传已久的迷思。 |
完全译错!我不晓得译者的阅读理解题是怎么做的,这里没有生词啊?译得大概太快了,自己一眼没瞅明白的,就只好随手来上一通瞎译,可怜的读者也只好跟着被糊弄了。 | To maintain their reputation, developers will find it necessary to push back on customer demands that they cannot fulfill. | 为了维护声誉,开发者将发现他们必须拒绝自己无法实现的客户要求。 | |
| 9 | P.91 第三段. 很明显,在大多数项目中,这种控制权的转移一般都是要大张旗鼓地宣布的。 |
还是基本功不行啊,竟然不知道 major 与 most 的区别,major projects 是指大项目。 | It is significant that in the case of major projects, such transfers of control are generally announced with some fanfare. | ||
| 10 | 第9章 P.99 倒数第2段. 团队可以勉为其难地去应付额外的要求,但在此之后必须有一段缓冲的时间,使他们能够回到原来的节奏。对于固定时间内的机械性的任务 ... |
看来熊名家的阅读能力真的有问题 | Teams can push themselves to deal with external demands, but the push must be followed by a time for rebuilding reserves. "Lean and mean" may be a way of managing mechanical tasks in stable times, ... | ||
| 11 | 第10章 P.107 第一段. 从某种意义上来说,正是媒体阻碍了开发者对自己工作本质的探索,这些从没有编写过一行代码的外行人把持着主流媒体,他们混淆了视听,让开发者无法就“软件开发的本质”进行交流。 |
此处是我最为感到震惊的地方。译者竟然随意地塞入自己的私货,借机摸黑主流媒体和软件工程,这决不是专业翻译人士所为。 | The combined effect of these changes has been that developers have not been able to communicate effectively about the nature of software development. | ||
| 12 | P.112 第四段. 在工艺学中,我们不会人为地将“能够制造有用产品的工匠”和“正在接受培训的人”区分开来 ... |
可以看出有多么匆忙 | It does not rely on an artificial separation between the craftsmen who are making useful things and the training of their eventual replacements. | ||
| 13 | 第15章 P.166 倒数第一段. |
更快、更高、更强,奥林匹克精神永放光芒!(哎,我们的译者又看走眼了) | The faster, better, cheaper ... | (略) | |
| 14 | 第16章 P.175 第一段. 一个大型的软件工艺项目可能只需要10个人年,20个人年的项目就已经是极限了。 |
典型的望文生义 | A large software craftsmanship project would take about 10 developer-years, whereas an extremely large application could take as many as 20 developer-years. | ||
| 15 | P.177 第二段. 另外,软件工艺要求团队中的每个人审查所有的代码,因此能够使每个人都在头脑中对日益增长的设计方案有清楚的认识。 |
没有抓住作者想要表达的重点,英文阅读能力欠缺 | Through the practice of having everyone on the team review all of the code as it is created and modified, the craft approach trains developers to hold increasingly larger designs in their heads. | ||
| 16 | P.178 第二段. 就算项目能够在这些变化中逃出生天,它们也会给项目带来极大的风险。 |
译者漏掉了本句最关键的信息“在项目后期”作出变化,因而没能抓住这句话的主旨,那么,读者得到了什么? | Although projects can survive these changes, making changes toward the end of a project is very risky. | ||
| 17 | 第三段. 之所以这样做,是因为只有在交付之前需求变更才会造成高昂的代价,因为必须把变化对其他正在进行的工作造成的影响考虑在内。 |
when 在这里是表达因果关系吗?看来又是基本功的问题。 | The reason is that requirements changes are expensive only prior to delivery, when their effects on the rest of the work in progress must be assessed. | ||
| 18 | 第18章 P.227 倒数第二段. |
将传统的“学徒制”与“工艺学”混淆,这回熊名家又看走眼了,稀里糊涂的。对于这种“熊式意译”的速度,您不感到害怕吗? | For this reason, software craftsmanship looks back to traditional apprenticeship as a means of giving beginners an adequate grounding and practices in the techniques. | 因此,软件匠艺借助传统的学徒制让初学者具备扎实的基础和足够的锻炼以掌握这些技术。 | |
| 19 | 学徒与软件工程培训的不同之处在于:从开始学徒期的第一天起,学徒就被灌输了“要掌握这门技艺”的热情,这份热情将伴随他一生。 | 如前,“学徒”与“学徒制”不是一回事,学徒怎么跟培训去比较?有人说,这会不会是打字漏打了,我说不是,因为在前面的目录里,熊名家就一直是这么译的。看来,这不但是英语能力的问题,也是中国语文的能力问题啊! | Apprenticeship makes a difference because ... | (略) |
工艺 - 手艺 - 匠艺
把 software craftsmanship 译作"软件工艺"恐怕是译者犯的最糟糕的一个错误,可谓错得透彻、错得精彩、错得圆满。什么叫“工艺”?生产工艺、制作工艺、贴片工艺、方便面工艺、泡菜工艺、青瓷工艺
... 这个中文词实在是太普通、太简单,普遍存在于我们的日常工作和生活中。
那么,“软件工艺”这四个字按照人们的使用习惯,当然是指你用什么流程、方法和技术来开发制作软件,所以大家可以想见:传统的结构化和面向对象是两种不同的软件工艺(方法),RUP
和 XP 是两种不同的软件工艺(流程),用 Hibernate 还是用 EJB 来开发企业应用,那是两种不同的软件工艺(技术),我们还可以对客户说,“我们的软件产品线很齐全,既可以用
IBM 的 Java 工艺开发,也可以用微软的 .Net 工艺开发,随需而变”。
而从 craftsmanship (我将其译成“匠艺”,中国古文早有匠艺一词)一书中对学徒、技师到工匠的显著划分,我们不难看出 Pete McBreen
明明讲的是软件手艺(或手工艺),以及如何学习过去手工作坊、手工业的优良传统! 软件“手工艺”和软件“工艺”虽一字之差,含义却明显不同。
猜猜看,熊名家为什么会把 software craftsmanship 译作“软件工艺”?我猜这是因为,好像在熊节的概念里,craft 是工艺,或者工艺学,或者手艺,可是他不知道该拿 craftsmanship 怎么办,索性也和 craft 划等号,译成“工艺”算了(很可惜,这次他没有选中“手艺”)。的确,在互联网上,好些人也是这么译的。
那么,熊名家把 software craftsmanship 译成“软件工艺”,造成了哪些后果,究竟错在哪儿?
把 Software Craftsmanship 译成 “软件工艺”的荒谬
1)“颠覆软件工程,开发回归人本”之真相
如果拿百联美达美公司来举例子(当然也可以用世界上其他任何一家软件开发机构,结论是一样的),我们知道她有两个知名品牌 —— CSDN.net(中国软件网)和第二书店,那么百联美达美自己的软件开发状况是什么样的呢?如果他们用的是软件工程,那么按照他们自己向大家所强力推荐的,这种开发模式显然属于被颠覆之列(百联美达美的项目规模显然在 100 人年之下),而且 CSDN.net 和第二书店网站的开发也不是以人(开发人员)为本,甚至违反人性,这样会吓跑一大批求职者。
另一方面,目前世界上还没有哪家企业能够真正实行《软件工艺》所倡导的 software craftsmanship(Pete McBreen 提出的一种新型理想模型),那么显然百联美达美过去当然没有可能采用软件工艺(按照熊节的译法),结果我们知道,CSDN.net 和第二书店网站是在没有采用任何软件工艺的情况下(稀里糊涂地)开发出来的。我们得出了如此有趣而荒唐的结论,对此,蒋涛蒋总倘若知道,将作何感想?
2)滑稽的“为什么工艺学已经不再可行”
(P.66 第7章) Software Craftsmanship Works Because Software Is Easy to Copy
In the mechanical engineering world there are economic arguments as to why craftsmanship is no longer feasible -- primarily due to the cost of manufacturing the physical goods. The problem cited is that the craftsman's time to make the item has to be paid for by each customer. A solution to this problem is to have the goods designed for manufacture by automated machines, subtly altering the design so that it is cheaper and faster to manufacture ... Items are cheap and plentiful, but they don't quite fit as well as a crafted item(我本来以为熊节不知道 craft 还有手工艺的意思,而实际上他是知道的——在这里,他想到了“手工艺制品”)would.
软件容易拷贝,所以软件工艺能够有效
在机械呆板的工程学世界里,有很多人试图从经济学角度说明“为什么工艺学已经不再可行”——主要是从物理产品的制造成本方面来论证的。他们指出:对于每个客户,工匠都必须花费时间去为他们制造产品;而解决这个问题的办法是:将产品设计为适用于机器自动生产,并对产品的设计进行细微的调整,使其能够成本更低、速度更快地自动生产
... 自动化生产的产品价廉量大,但无法像手工艺制品那样完全符合用户的需要。
首先,在这短短的一段文字中,我们再次发现,如前所述,熊节把 craftsmanship 一会儿译成“软件工艺”,一会儿又译成软件“工艺学”。显然,在他的世界中,工艺和工艺学完全是一回事,就好像“熊猫”和“熊猫学”是一回事一样。
其次,原书这一小节的大意是,如今很多人认为 craftsmanship is no longer feasible,为什么?因为在现代机械工业时代,从经济面(时间、产量和成本)考虑,传统工匠显然比不过自动化机器,虽然前者的质量可能更好,能够量身定做。而 McBreen 认为提倡软件业模仿传统手工业的 craftsmanship (匠师制)是可行的,因为软件易于拷贝复制。显然,McBreen 在这里比较的是:传统手工业和现代自动化的工业生产。
这段话本来很容易懂,可滑稽的是,被我们的熊名家译成了:很多人认为“工艺学”不行了。看到这里,我一直没看懂,难道这里不是存在一个明显的逻辑错误吗?噢,怎么,工匠的手工制作被当成了所谓的“工艺学”(craftsmanship),这些人认为在机械工业时代“工艺学”不行了。果真如此吗?熊节似乎在拿“工艺学”与“现代自动化生产”做比较,引申开去,就是我们应该复兴软件的工艺学(craftsmanship),而不要现代自动化大规模生产的工艺学,怎么“工艺学”把自动化工艺、现代工艺、机器工艺排除了在外?这是哪儿跟哪儿呀!
问题出在哪里?原因就是我们的熊名家想当然地、自信满满地把 craftsmanship 译成了“工艺学”(我有点纳闷,当初出版社为啥没有把这本书的书名定为《软件工艺学》?现在看来,这纯属概率事件)!大家看到了,这在这本书里根本讲不通啊!而且看来,熊节对现代工业与传统手工业的区别与联系、什么是“工艺学”缺乏基本的了解,一点儿也不敏感,也真是这个原因,让我对熊节本人的教育背景产生了很大的怀疑——他竟然不知道什么是“工艺学”!
为了进行对比,说明问题,只好拿出拙译,各位看官见笑了:
Craft 与 Craftsmanship 是两个不同的词
工艺和手艺的意思截然不同

我说工艺和手艺不是一回事,有人反对吗?那好,仍然举前面那个豆腐美食的例子。我们知道,不管在豆腐工厂还是豆腐作坊里,制作豆腐的工艺根据产品种类可能只有固定的几种,在一定时期内全厂是统一的,只有工艺保持相对稳定,才能生产、制作出品质可靠的豆腐。可是我们知道,豆腐工厂、作坊里的许许多多师傅、徒弟,每个人的手艺却不尽相同!所以,如果
McBreen 说 Doufu craftsmanship is personal 我们不会感到奇怪。再比如,假如熊节要夸自己的妻子菜做得好,我想大概会说,“老婆,你做菜的手艺真的是越来越好,我是敢不上了...”;可是,假如他说,“老婆,你做菜的工艺太好了
...”您猜结果会怎样?再比如,前段时间看 CCTV-10 的探索-发现节目(本人的最爱),了解到把老鹰驯化为“海冬青”是满族的一道传统手艺,我想没有人会说“训练老鹰”也是一门工艺。可见,在中国的语言里,手艺、工艺区别的例子真是举不胜举,这说明它们原本就不是同一个概念。
匠艺和工艺有什么区别呢?Craftsmanship
也是一种手艺(或技能)。
工艺和手工艺的区别
有人可能会问,“工艺”和手工艺”不就一字之差嘛,犯得着如此咬文嚼字吗?这里允许我解释一下,菜鸟们可能一下子搞不明白,菜鸟帮菜鸟,义不容辞啊。
我们知道,“工艺”本身是一个含义宽泛的词(基类),“手工艺”这个词由于前面有个“手”字所以它不再指一般的工艺了,假设和它对应的是“自动工艺”(不需要靠手工来完成的工作),这两组词实际上是一种泛化的关系。我们用 UML 可以建立一个概念模型,如图所示。
我再举个类似的例子。比方说,Kent Beck 写了本 eXtreme Programming Practices(《极限编程实践》)的书,如果按照熊节的译法随随便便地把“手工艺”的“手”去掉变成了“工艺”,等于是把“极限”这个定语去掉,只剩下“编程”,那么这本书就变成了《编程实践》,书中所有的“极限编程”都变成了“编程”。可是编程和极限编程(工艺和手工艺)是一回事吗?我们能不能用软件“编程”来取代甚至颠覆软件“工程”呢?原作的精神实质和内容主旨已经丧失殆尽,这种翻译合格吗?真可谓暴敛天物。
那么,如果我们把 craftsmanship 译成“手艺”、“手工艺”会怎么样?
Craftsmansip 应该译作 “匠艺”或“匠师制(工匠制)”
我们知道在英文中,craft 和 craftsmanship 是两个意思不同的词,craftsmanship 为什么不是 craftship 呢?根据具体语境,把 craft 译成“工艺”、“手工艺”或者“手艺”可能都不错,那么 craftsmanship 应该怎么译呢?
如果,当初熊节把 craftmanship 译成“手艺”或者“手工艺”,我觉得都可以打 70-80 分。其实,我比较笨,从 craftsmanship 的构词来看,craftsman 是“工匠”或者“匠师”的意思,那么把 craftsmanship 译成“匠艺”原本是最容易让一般人立刻想到的,craftsman + ship 不就是 “匠 + 艺” 吗? 可惜,熊节从头到尾不但把中文的“工艺”、“手工艺”和“手艺”混为一谈,更是把英文的 craft 和 craftsmanship 混为一谈,结果就阴差阳错地、稀里糊涂地把 software craftsmanship 译成了“软件工艺”,把 “软件工程”与 “软件工艺”对立起来。
“匠艺”并非本人的生造,查 Google 吓你一跳,竟有一千七百多项。涉及行业包括建筑、文学、戏剧表演、雕塑、动漫等等,可谓古今中外 365 行,行行出匠艺。比如 “红炉业在济宁十大匠(铁、木、竹、金、银、铜、锡、石、窑、瓦)中有第一匠艺之称”。《元史 本纪第七 世祖四》中有一句“诸路正军帖户及同籍亲戚奴仆,丁年既长,依诸王权要以避役者,并还之军,惟匠艺精巧者以名闻”。在《北洋海军章程》中有这么一句,“凡鱼雷头目,应由水手副头目或一等水手曾经学习鱼雷匠艺并谙操放鱼雷者考充”。大家没有想到吧,过去竟然还有鱼雷匠。此外,中国戏剧出版社早在 1957 年就出版过一本《论匠艺》(斯坦尼斯拉夫斯基原著,张守慎译)。
将 craftsmanship 译作“匠艺”,来自其他学科的佐证:
- 台湾中原大学建筑学系学生赵文杰在他 2002 年的硕士论文《台湾传统匠师参与古迹修复之研究》中写道“当前对传统匠艺之研究不少,却未见有关关键问题之探讨”(there
are very few studies made on traditional craftsmanship, and no
study is seen on relevant essential problems)。
- 《司法程序》(Judicial
Process,2004年6月 法律出版社) 第三章的标题就是 Craftsmanship,中文版就译作 “匠艺”,呵呵,讲的是法官的匠艺(职业技能)。
匠师制
小结
梳理一下我方的论证逻辑。
以上我们从多个角度、多个方面论证了将 software craftsmanship 译作“软件匠艺”的正确性,Pete McBreen 这本书明明讲的是匠艺,书名原本应该是《软件匠艺》,书中所有的“工艺”也应该都改成“匠艺”。
什么是真正的软件工艺、软件工艺学?
告诉大家哪些书才是真正的在介绍软件开发的工艺,其实 30 多年来软件工程一直在研究软件开发的工艺学。像我本人,一直研究的主要是面向对象的工艺流程和技术。好了,请大家扪心自问,匠艺、手工艺和软件工程是矛盾的,颠覆与被颠覆的关系吗?软件工程恰恰是在匠艺、手工艺的基础上发展起来的,软件的匠艺、手工艺也是软件工程的研究和改进对象。
关于软件工程是否被颠覆了,或者是否可以(能够)被颠覆,请看
谈谈熊氏翻译的特点
创造了一种不留痕迹的新式意译法
可怕 可怕
归纳总结
用什么颠覆软件工程?用“软件工艺”吗?极具讽刺性的是,工艺(开发软件的技术和方法,英文叫 technics 或 technology )原本、从来就是世界软件工程界研究的核心问题,大概是欺负我们工程界无人,熊节却要用工程学话语(显然是太不熟悉)来颠覆软件工程及其话语体系(可怜他曾经是学工科的),再一次强烈地颠覆了读者的理解力和判断力。本人由此强力推举“主张软件工艺,颠覆软件工程”当选 2004 年度中国软件业十大行业笑话之首。倘若有朝一日漫天下咿呀学语的菜鸟们真的开始天天嚷嚷着“我们要工艺,不要工程”,那效果将不啻于一场人间灾难。所以,这场话语争夺战,是职业顾问与业余忽悠之战(呵呵,我的自以为是),为了中国软件业的美好明天,为了菜鸟能长成雏鹰,我们必然要打下去!让我们一起呼唤吧:“还我工艺,还我工程!”
最后,还是让我们回到本文开头的那段名家名言,“以其人之道、还治其人之身”看来是比较好的办法。各位看官也不用太在意,就当是我的戏说吧:
如果一本书既没有译序也没有索引,通常你无法期望它的译者对它投入更多的心血。然而,如果一本书有漂亮的索引、精彩的译序,甚至还有一篇旁人的推荐和出版人语,你仍然 8 可以放心,它还是有可能被糟蹋了,而且完全有可能带你误入歧途。原著就已经如此参差,再加上引进翻译的滤波转换,中国读者就更容易在摆满名书的货架前晕头转向了。
熊氏作品统一的品牌、包装和文宣设计构成了它无法错认的风格,但也容易流于同质化,使读者无从选择,甚至因为一次失败的阅读体验而败坏了我们对熊氏作品的整体印象。
