一、原文:
At MediaTronics I had run a program division, riding herd over a group of talented young computer programmers. At forty, I was too old to work as a programmer myself anymore; writing code is a young person’s job. So I managed the team, and it was a full-time job; like most Silicon Valley programmers, my team seemed to live in a perpetual crisis of crashed Porsches, infidelities, bad love affairs, parental hassles, and drug reactions, all superimposed on a forced-march work schedule with all-night marathons fueled by cases of Diet Coke and Sun chips.
分析:
1。此译本中一律把计算机程序设计人员称为“程序编制员”,这种说法是不确切的。因为在计算机行业里,程序设计人员的通常称呼都是“程序员”、“程序设计员”或“程序师”,却从来没有什么“程序编制员”的说法。程序设计就是设计或者编写程序(而非“编制”程序),通俗地说就是写代码,它与把一堆现有材料做成产品(成品)的工作方式是不同的,它是一种纯粹的创造性的工作,是在系统需求任务书(计划或方案)的基础上,在计算机上用代码把这个系统的所有功能用程序实现出来的一种创造性的活动。显然,这种方式与“编制”的一般概念是不同的,而“程序编制员”的叫法只会让人想起那些编制报表的人员;
2。“it was a full-time job”被译成“那是一份全职工作”似乎有误,在这里似应改为“那是一个全天候的工作”。
二、原文:
But the work was exciting, in a cutting-edge field. We wrote what are called distributed parallel processing or agent-based programs. (P4页)
三、原文:
These programs model biological processes by creating virtual agents inside the computer and then letting the agents interact to solve real-world problems.
四、原文:
Actually, it was my division’s source code—software for distributed processing. That was the code that had been stolen. We knew it was the same code, because the Easter eggs hadn’t been touched.
六、原文:
Certainly my team had written a number of programs to control swarms of agents. Those programs were modeled on behavior of bees. The programs had many useful characteristics. Because swarms were composed of many agents, the swarm could respond to the environment in a robust way. Faced with new and unexpected conditions, the swarm programs didn’t crash; they just sort of flowed around the obstacles, and kept going.
七、原文:
“We use them for structure,” she said. “The program makes the swarm structure.”
Of course. It was obvious that a single molecular camera was inadequate to register any sort of image. Therefore, the image must be a composite of millions of cameras, operating simultaneously. But the cameras would also have to be arranged in space in some orderly structure, probably a sphere. That was where the programming came in. But that in turn meant that Xymos must be generating the equivalent of—
八、原文:
“She’s taken a real interest in the technology, I can tell you. Also, they’re doing a lot of programming up there, too,” he said. “You know. Iterative cycles as they refine the manufacturing.”
九、原文:
In fact, assembling atoms to make a new molecule was closely analogous to compiling a computer program from individual lines of code. And computer code never compiled, the first time out. The programmers always had to go back and fix the lines. And even after it was compiled, a computer program never ever worked right the first time. Or the second time. Or the hundredth time. It had to be debugged, and debugged again, and again. And again.
十、原文:
I always believed it would be the same with these manufactured molecules—they’d have to be debugged again and again before they worked right. And if Xymos wanted “flocks” of molecules working together, they’d also have to debug the way the molecules communicated with each other, however limited that communication was. Because once the molecules communicated, you had a primitive network. To organize it, you’d probably program a distributed net. Of the kind I had been developing at MediaTronics.
十一、原文:
Eventually, programmers say the agents have beliefs about their environment, and that they are acting on those beliefs. That’s not literally true, of course, but it might as well be true. It looks that way.
十二、原文:
In evolutionary programs, those agents get killed off. They have no children. In other multi-agent programs, they just get bypassed, pushed to the periphery while the main thrust of agents moves on. Some programs have a “grim reaper” module that sifts them out from time to time, and pulls them off the board.
But the point is, they’re stuck in their own past. Sometimes they pull themselves together, and get back on track. Sometimes they don’t.
Thoughts like these made me very uneasy. I shifted in my chair, glanced at the clock. With a sense of relief, I saw it was time to go pick up the kids.
十四、原文:
“I don’t get it,” I said. “I’m perfectly positioned in a hot field, multi-agent distributed processing, and—”
“Hot?” she said, squinting at me. “Distributed processing’s not hot, Jack. It’s fucking radioactive. Everybody in the Valley figures that the breakthroughs in artificial life are going to come from distributed processing.”
“They are,” I said, nodding.
十五、原文:
In the last few years, artificial life had replaced artificial intelligence as a long-term computing goal. The idea was to write programs that had the attributes of living creatures—the ability to adapt, cooperate, learn, adjust to change. Many of those qualities were especially important in robotics, and they were starting to be realized with distributed processing.
译林版迈克尔·克赖顿名作Prey(猎物)评析(续) ——与Prey译者商榷 十六、原文: For example, they tried to teach computers that if someone bought something at a store, they had to pay before leaving. But this commonsense knowledge proved extremely difficult to program. The computer would make mistakes. New rules would be added to avoid the mistakes. Then more mistakes, and more rules. Eventually the programs were gigantic, millions of lines of code, and they began to fail out of sheer complexity. They were too large to debug. You couldn’t figure out where the errors were coming from. 原译: 例如,他们试图要计算机懂得:如果有人在商店里选择了商品,他们必须在离店之前付钱。但是,结果却很难将这种日常知识编为程序。计算机会出错。必须增添新程序以避免那些错误。结果是错误越多,规则越多。所用的程序最终越来越庞大,涉及数百万条编码,这使它们开始因为复杂性而出错。那些程序太大,无法排除错误。人们无法找到错误出现在什么地方。(P68页第2行始) 分析: “把日常知识编为程序”这句话容易让人产生误解。原文在这里强调的是力图让计算机具有人的一些最简单的技能而非知识。因为“把知识编为程序”是一件很简单的事情——只要把这些知识输入进计算机,存入数据库中,需要时往外调用就行了。这里的区别在于,让计算机处理人的知识非常容易,但是让计算机按人的一些最简单的常识来行事却异常困难。 另外要说明一点,从这一段开始,原文对软件设计行业发展过程中经历的“软件危机”、结构化程序设计方法的缺陷等内容做了简略的叙述。其中谈到的“基于规则”(rule-based)的设计方法,更确切的称呼应为“结构化的程序设计方法”(structured programming)。 订正: 例如,他们试图教会计算机明白:如果有人在商店里选择了商品,他们必须在离店之前付钱。但是,实践证明这些习以为常的技能通过编程实现非常困难。计算机总是会不停地犯错误。为避免出错你得在程序中增加这样那样的规则,其结果是错误越来越多,规则也越来越多。最终程序变得异常庞大,动辄就是数百万行代码,然后程序便开始因其过于复杂而走向崩溃。太庞大的程序是无法调试的,人们无法弄清那些错误究竟出自哪里。 十七、原文: So it began to seem as if rule-based AI was never going to work. Lots of people made dire predictions about the end of artificial intelligence. The eighties were a good time for English professors who believed that computers would never match human intelligence. 原译: 所以,人们面对的情况好象是,基于规则的人工智能走入了死胡同。许多人作出了可怕的预测:人工智能将会寿终正寝。英国教授们相信计算机绝对可能赶上人类的智能;20世纪80年代是他们的理论大行其道的时期。(P68页第2段) 分析:这又是一段前后矛盾的译文。前面说“人工智能将会寿终正寝”,后面又说“计算机绝对可能赶上人类的智能”,不知这是译错了还是印刷错了。此外,何谓“英国教授们相信”?美国教授、其它国家的教授们不信乎? 更正: 因此,基于规则的人工智能似乎从来也没有成为现实。许多人悲观地预测说人工智能将会寿终正寝。那些相信计算机绝对不可能拥有人类智力水平的英语教授们的理论,在20世纪80年代曾昌盛一时。 十八、原文: But distributed networks of agents offered an entirely new approach. And the programming philosophy was new, too. The old rules-based programming was “top down.” The system as a whole was given rules of behavior. But the new programming was “bottom up.” The program defined the behavior of individual agents at the lowest structural level. But the behavior of the system as a whole was not defined. Instead, the behavior of the system emerged, the result of hundreds of small interactions occurring at a lower level. Because the system was not programmed, it could produce surprising results. Results never anticipated by the programmers. That was why they could seem “lifelike.” And that was why the field was so hot, because— 原译: 但是,分布式并行处理的智能体网络提供了一种全新方式。而且,那种编程方式的理念也是新的。基于规则的陈旧编程方式是“自上而下的”。在总体上给系统制定了行为规则。 但是,新的编程方式是“自下而上的”。这种程序在最低结构层面上规定单个智能体的行为。然而,并未在总体上规定系统的行为。系统的行为是自动浮现出来的,那是发生在更低层面的数以百计的微小互动的结果。 因为系统并未被编程,它能够形成令人吃惊的结果。程序编制员绝对没有预测到的结果。这就是那种程序看来“拥有生命”的原因。而且,这就是该领域如此热门的原因,因为—— (P68页第3、4、5段) 说明: 这几段译文的问题也是阐述得不够清楚。其中“old rules-based programming”实际上并不是“陈旧的编程方式”,因为设计方法的革命主要体现在看待设计对象的方式上和系统设计上。传统的程序设计方法只是不适应规模巨大和太复杂的系统的设计,而在所有的程序模块内部,无一例外离不开“rules-based programming”。试改译如下。 改译: 但是,分布式的智能体网络为我们提供了一种全新的途径。它的程序设计思想也同样是新的。传统的基于规则的设计方法乃是“自顶向下”的,在给系统赋予行为规则时是将其当做一个整体看待。 而新的程序设计方法是“自底向上”的。程序在底层定义单个智能体的行为,系统作为一个整体其行为则不予定义,而是由发生在低层的许许多多个小的相互作用的结果自然而然体现出来。 因为并不存在系统级的编程,程序运行时会产生一些令人吃惊的结果。这些结果就连设计人员也无法预料。这就是它们为什么看上去象是“有生命”的原因,同时也是该领域为何如此热门的原因,因为—— 十九、原文: If you figure beta debugging to golden master takes four months,... 原译: 如果你考虑到从试验除错到推出黄金版本需要4个月时间,。。。(P76页8行) 订正: 如果你考虑一下从测试阶段的贝塔版到推出正式版还需要4个月时间,。。。 注:贝塔版(β版):一种新软件在正式推向市场之前所经历的测试阶段的第二个版本。 二十、原文: Agent-based programs that modeled biological populations were increasingly important in the real world. Like my own programs that mimicked ant foraging to control big communications networks. Or programs that mimicked division of labor among termite colonies to control thermostats in a skyscraper. And closely related were the programs that mimicked genetic selection, used for a wide range of applications. In one program, witnesses to a crime were shown nine faces and asked to choose which was ost like the criminal, even if none really were; the program then showed them nine more faces, and asked them to choose again; and from many repeated generations the program slowly evolved a highly accurate composite picture of the face, far more accurate than any police artist could make. Witnesses never had to say what exactly they were responding to in each face; they just chose, and the program evolved. 原译: 基于智能体的程序以生物群体为模式,在现实世界中的地位越来越重要。它与我搞的模仿蚂蚁寻食行为来控制巨大交流网络的程序类似。或者,它与模仿白蚁群体的劳动分工来控制摩天大楼中温度自动调节器的程序类似。除此之外,与它密切相关的是实际应用领域十分广泛的模仿遗传选择的程序。(P77页1—5行) 改译: 模仿生物群体行为的基于智能体的程序,在现实世界中的应用价值越来越大。象是我设计的那种通过模仿蚂蚁寻食行为来管理大的交通网络的程序,或者模拟白蚁群落的分工协作来调节摩天大楼温控器的程序等,均属此类。与此相近的还有用途广泛的模拟遗传选择的程序。 二十一、原文: So, yes, I had been in the right place at the right time. But I wasn’t passive, I was lucky. 原译: 所以,我说得对,我在适当的时机处于适当的领域。 (P77页倒数第8行) 分析:这段话的后面本来还有一句,原译把它遗漏掉了。 补正: 所以,的确,我在适当的时机处于适当的领域。但我不是被动的,我只是足够幸运罢了。 二十二、原文: Personally, I always thought there was a clue from computer programming, in a procedure called recursion. Recursion means aking the program loop back on itself, to use its own information to do things over and over until it gets a result. You use recursion for certain data-sorting algorithms and things like that. But it’s got to be done carefully, or you risk having the machine fall into what is called an infinite regress. It’s the programming equivalent of those funhouse mirrors that reflect mirrors, and mirrors, ever smaller and smaller, stretching away to infinity. The program keeps going, repeating and repeating, but nothing happens. The machine hangs. 原译: 就个人而言,我一直觉得,在一种称为递回的方法中,计算机编程方法给了人们一种提示。递回的意思是让程序循环运行,利用它自己的信息去重复做同样的事情,直到获得结果。人们可以利用递回来进行特定的数据分类演算以及类似的工作。但是,做这种工作必须谨慎从事;否则,就可能使计算机陷入一种被称为无限倒退的危险。所谓的无限倒退是类似于游乐宫里的连环镜的程序——连环镜反射出其他镜子,那些镜子越变越小,逐渐延伸,直至无穷。程序一直运行,不断重复,但是不会形成结果。计算机无法进行判断。(P78页第2段) 分析: 这段译文就是让我鼓起劲头来写这篇吃力不讨好的文字的起因。recursion的正确译名是“递归”而不是“递回”。递归是数学中的一个重要概念,根据它设计的递归算法是程序设计中的一个强有力的工具,数学中的一些著名命题如“八皇后问题”、“Hanoi塔问题”,都是可以使用递归方法进行解决的很好的例子。稍微有些计算机知识的人(例如在计算机普及教育中学过Basic语言的人)都应该知道这个名词。这个译名早在20世纪60年代初我国开始引进并研制计算机时就已经正式确定。尽管从字面上看“递回”与“递归”的意思相同,但正如我们不能把数学上的“群论”叫做“群理”一样,有着同样的道理。把它译错是很不妥的。 hang(s)的意思不是什么“无法进行判断”。玩电脑的人都知道这个词的意思,就是“挂了”、“完蛋了”、“宕机了”。 更正: 就个人而言,我常常会想到程序设计中一种称为递归的过程予人的提示。递归的意思是让程序在运行时循环引用它自己,利用它自身的信息重复做同样的事情,直到获得结果。递归主要用于一些数据分类算法及类似的操作中。但是,使用递归时必须小心,若是处理不好,有可能使计算机陷入被称之为“无限回归”的陷阱当中。“无限回归”是指程序设计中出现的类似于游乐宫里的连环镜的场景——在一个镜子中反照出另一个镜子缩小的身影,另一个镜子中又反照出下一个,如此重复下去,使镜子中的影象越来越小,直至无穷。这样的程序会不停地运行下去,循环往复,却什么结果也没有,最终计算机就死机了。 二十三、原文: For example, before I was fired, my development team was using multi-agent processing to enable computers to learn, to recognize patterns in data, to understand natural languages, to prioritize and switch tasks. What was important about the programs was that the machines literally learned. They got better at their jobs with experience. Which is more than some human beings can claim. 原译: 例如,在我被解雇之前,我领导的研发团队利用多智能体处理方法,使计算机产生学习行为,辨识数据中的模式,理解自然语言,按优先顺序列出并执行任务。那项程序的重要意义在于,计算机确实有了学习能力。它们随着经验的积累去改进执行任务的能力。这超出了某些人认为机器具有的功能。(P79页8—12行) 改译: 例如,在我被解雇之前,我那个研发小组正运用多智能体处理技术使计算机具备学习能力,能识别不同的数据模式,理解自然语言,以及把任务按优先顺序进行排列和切换。这类程序的重要意义在于,计算机确实具备了学习的能力。随着经验的逐步积累,它们的表现也会越来越好。其效果已超出了某些人声称的程度。 二十四、原文: PREDPREY was a system we’d designed over a year ago. Like most of our programs, it had been based on biological models. PREDPREY was a goal-seeking program based on predator/prey dynamics. But it was extremely simple in its structure. 原译: “掠食猎物”是我们在一年之前设计的。与我们涉及的大多数程序类似,它是以生物模式为基础的。“掠食猎物”是一种基于掠食者与猎物之间动力的目标寻找程序。但是,它的结构非常简单。(P84页倒数第8行—倒数第5行) 分析: “一种基于掠食者与猎物之间动力的目标寻找程序”,这句译文的含义令人费解。 改译: “掠食者”系统是我们在一年多以前设计的。它跟我们开发的大多数程序一样,是一种建立在生物行为模拟基础上的程序。“掠食者”是一种基于捕食者与猎物之间的动态目标搜寻程序。但它在结构上却非常简单。 二十五、原文: “I’m not surprised,” I said, “because we didn’t specify reinforcers.” Reinforcers were program weights that sustained the goals. The reason you needed them was that since the networked agents could learn, they might learn in a way that caused them to drift away from the goal. You needed a way to store the original goal so it didn’t get lost. The fact was you could easily come to think of agent programs as children. The programs forgot things, lost things, dropped things. It was all emergent behavior. It wasn’t programmed, but it was the outcome of programming. And apparently it was happening to Xymos. 原译: “我并不感到吃惊,”我解释说,“因为并未确定增强参数。”增强参数是维持目标的程序力量。需要那些程序力量的理由在于,由于网络智能体具有学习能力,它们可能以一种促使它们脱离目标的方式学习。所以,需要一种方式来储存最初目标。以便使它不会失去。事实上,人们可以直截了当地将智能体程序视为儿童。该程序忘记事情,丢失东西,放弃东西。 这一切全是自动出现的行为。它没有被编入程序,然而它是编程的结果。显然,艾克西莫斯技术公司遇到的正是这样的问题。(P85页5—13行) 改译: “我并不感到吃惊,”我解释说,“因为并未指定强化参量。”强化参量是程序中用来确认目标有效的程序权值,之所以需要它们,是因为组网的智能体既然具有学习能力,它们就有可能会以一种导致它们偏离目标的方式去学习。因此,你需要把原始的目标储存起来,以免找不到它。其实,你可以简单地把智能体程序看做是一帮孩子,它们既会忘记事情,也会丢三落四。 这些行为全都是自然发生的。编程时并没有设计它们,可它们却是编程的结果。很明显,艾克西莫斯技术公司就遇到了这样的问题。 二十六、原文: And these days natural language programs were starting to involve distributed processing. Because it turned out people evaluate a sentence in several ways simultaneously, while it is being spoken; they don’t wait until it is finished but rather they form expectations of what is coming. That’s a perfect situation for distributed processing, which can work on a problem at several points simultaneously. 原译: 而且,自然语言程序近来开始涉及分布式处理。因为人们在组成句子的过程中实际上同时以几种方式进行评价,形成对新信息的期待——他们不会等到句子被完全说出来之后才进行评价。那就是分布式处理的完美情景,分布式处理可以在几个点上同时解决一个问题。(P117页第3段8—12行) 改译: 近来,自然语言编程开始引入分布式处理技术。研究发现,人们在听到一句话时,对这句话的评判实际上是同时以几种方式进行的,你不会等到别人把一句话全部说出来后才对它的含义做出评判,而是话还未说完就开始了。对分布式处理来说,这是一种理想的情况,即它可以同时在几个方向上处理一个问题。 二十七、原文: “Shit, I have better things to do,” Charley said. “But I wrote the algorithm that controls the sensors, and we need to optimize the sensor code after they’re done. I’m just waiting until they stop screwing around. Then I’ll optimize.” He looked pointedly at Bobby. “None of these guys can optimize worth a damn.” 原译: “废话,我还有更重要的事情需要处理,”查理说,“不过,控制传感器的规则系统是我编写的,需要在他们弄完以后优化传感器编码。我等在这里让他们先检查传感器。然后,我进行优化。”他盯着博比,“这些家伙没有哪一个会搞优化。” (P123页第3段) 分析: “worth a damn”的意思是“有一点儿价值”。“None of these guys can optimize worth a damn.”这句话并不是说博比等人不会做代码优化工作,只不过水平太低,做的毫无价值罢了。 改译: “废话,我还有更重要的事情需要处理,”查理说,“不过,控制传感器的算法是我写的,等他们干完活后,我们需要对那些传感器代码进行优化。我只不过在这等着他们把事情鼓捣完。然后我就去做优化工作。”他盯着博比,“这些家伙没一个会做象样的代码优化。” 二十八、原文: Commanders on the ground could call up the images they wanted, in the spectra they wanted—visible, infrared, UV, whatever. Real-time imaging was going to be a very powerful tool in future warfare.” 原译: “···地面指挥官可以调出他们需要的图象,排成他们想看的系列——图片的、红外线的、紫外线的,等等。在未来战争中,实时成像将会是一种非常强有力的工具。” (P125页2—4行) 分析: 《猎物》的译者在这里把“spectra”(光谱,频谱)这个词错译成了“系列”,相应地就把“visible”(可见的)想当然地错译成了“图片的”。实际上,这一段的原文仰赖于一点物理学的知识。此处“visible, infrared, UV”意指分别用普通(可见光)摄像镜头、红外光摄像镜头、紫外光摄像镜头拍摄的图象。 改译: “···地面指挥官可以按照不同光谱拍摄的图像来调出他们想要的——可见光拍摄的、红外线光拍摄的、紫外线光拍摄的,等等。在未来战争中,实时成像技术将会成为一种非常有用的工具。” 二十九、原文: I was familiar with the problem. The nanoparticles in the cloud had to be endowed with a rudimentary intelligence, so that they could interact with each other to form a flock that wheeled in the air. Such coordinated activity might look pretty intelligent, but it occurred even when the individuals making up the flock were rather stupid. After all, birds and fish could do it, and they weren’t the brightest creatures on the planet. 原译: 我对这个问题了如指掌。必须使云状物中的纳米微粒拥有初级智能,以便让它们产生互动,形成一种在空气中旋转的集群。那种协作活动可能显得具有相当高级的智能,但是即使在组成该集群的单个微粒比较愚蠢的情况下,那样的活动也能出现。毕竟,鸟类和鱼类都能做到那一点,而它们并不是地球上最聪明的生物。(P125页最末一段) 分析:原译文字生硬费解,所以改译如下。 改译: 我很清楚这个问题出在哪。必须给云状物中的纳米粒子赋予初级智能,这样它们才能够相互配合,形成一个在空中盘旋的集群。这样的协作有可能呈现出相当高级的智能,而且即便是组成该集群的每一个单独的粒子智力都很低下,那种高智能的协作也会出现。毕竟,鸟类和鱼类都能做到这一点,而它们并不是地球上最聪明的生物。 三十、原文: Nor were individual birds genetically programmed for flocking behavior. Flocking was not hard-wired. 原译: 鸟类个体也未在遗传上编有产生群集行为的指令程序。群集行为并不是硬件连接的。(P126页第4段1—2行) 订正: 鸟类个体在遗传编码上并没有为群集行为建立指令。群集行为并不是硬性编排好的。
三十一、原文: Individual agents—whether programming modules, or processors, or as in this case, actual micro-robots—could be programmed to cooperate under certain circumstances, and to compete under other circumstances. They could be given goals. They could be instructed to pursue their goals with single-minded intensity, or to be available to help other agents. But the result of these interactions could not be programmed. It just emerged, with often surprising outcomes. 原译: 单个智能体——不论它们是编制程序的模块,还是处理器,还是在本个案中的真正的微型机器人——被编入指令程序,在特定情况下协作工作,而在别的情况下互相竞争。可以给它们设定目标。可以让它们以单一定向的强度去寻求目标,或者发挥作用去帮助其他智能体。但是,无法将这些互动作用的结果编入程序加以控制。它只是自动浮现出来,而且常常形成出人意料的结果。(P127页第1段)
买回一本《State of Fear》来,却是很难会翻开来再读一遍,纯粹只是把这本厚厚的书拿在手里,用来偶尔自我感觉良好一下。书的封底,介绍了Michael Crichton的其他作品,像《侏罗纪公园》和《失落的世界》那样看过电影的,一时也没有太大兴趣找来再读一次,于是挑了另外一部《Prey》,四下搜索,找来读了一遍。
只是,接受义务教育的经验告诉我们,但凡是叙述,常常都是有中心思想的。《Prey》给人最大的缺憾,怕就是在情节框架之外,作者想通过它表达的意思,与《侏罗纪公园》和《失落的世界》比起来,也几乎一样——以为科学能够解决一切问题的凡人们,无限制地利用科学和技术谋求利益的最后,总不免遭到科学的反噬。这个主题也不坏,但是像《State of Fear》表述的危害性的科学政治化那样使人耳目一新乃至对惯常被灌输的类常识性概念开始产生怀疑,使人某种程度上动摇了观念和看法,却不是《Prey》可以做到的了。