美文网首页编程语言爱好者
编程界让人云里雾里的翻译盘点

编程界让人云里雾里的翻译盘点

作者: landscape_f117 | 来源:发表于2020-10-30 18:20 被阅读0次

    语言这种东西经常让人产生误解。翻译过的语言经过了别人的一层理解,往往更容易让人云里雾里。这篇文章总结一下自己职业生涯里面遇到一些难懂的翻译,初见吓一跳的那种,莫名感觉高大上,实际上他们表示的内容可能并没有多艰深。

    面向对象

    英文原文 :object oriented

    因为对象这个中文单词具有某个特殊含义,因此也成了一个梗。
    最开始遇到的时候,真的不明所以。实际上当我真正理解了面向对象之后,我觉得这个翻译是没什么问题的。问题是面向对象这两个词对初学者来说太抽象了。

    那我们来具象的解释一下。

    面向,字面意思就是脸对着谁。我们脸对着谁,那一般注意力就在谁嘛。谁让我们的眼睛只能看到前面呢。那这个面向其实就引申为,注意力在谁身上,注重的意思。


    面向

    (你看上面这个图里面两个男的深情对视,哪还有功夫看旁边的美女。)

    对象,常有两层意思,指行动或思考时作为目标的事物或特指恋爱的对方等含义(百度百科)。 其实这里要体现的重点是事物这个含义。台湾翻译成构件或许更直白一些。

    那为什么要注重事物呢,因为事物这里和过程是相对的。好比一个电影,里面有人物和剧情。人物就可以类比成事物,剧情就类比成过程。这里的意思实际上就是注重人物,先不管剧情。这其实是一个编剧的技巧。对吧,哎,跟艺术还联系起来了。


    人物(对象)

    这样有什么好处呢,编剧先有人物,人物就立体了,情节就自然了,故事就好发展了,甚至还可以搞IP了。周边同人也好发展了。因为这个人有了,他遇见谁就会发生怎样的故事。

    面向对象编程也是一样,先有事物,完成他的功能和属性,那么他可以自然的在各种场景工作。甚至还能生孩子,搞变异是吧。对象有了,代码世界也就构建好了。

    不知道这么一类比有没有变的好理解一些呢。

    双亲委派模型

    英文原文:parents delegate

    这个就是彻彻底底的翻译问题了。parents在英文中是“父母”、“双亲”的意思,但这里其实表达的是“父母这一辈”的人的意思。实际上这个模型中,只是表达“父母这一辈”的class loader而已,并不是说真的有一个父亲的class loader和一个母亲class loader。正确的翻译应该是父委派模型

    oracle 官方文档关于 jvm 类加载机制所用的描述是:

    The Java platform uses a delegation model for loading classes. The basic idea is that every class loader has a "parent" class loader. When loading a class, a class loader first "delegates" the search for the class to its parent class loader before attempting to find the class itself.

    翻译过来就是:

    java 平台使用 委派模型来加载类。 基本思想就是, 每一个类加载器都有一个父加载器, 当需要加载一个 class
    时, 首先把该 class 的查询和加载优先委派给父加载器进行, 如果父加载器无法加载该 class, 再去尝试自行加载这个 class

    使用了父委派模型后, 类随着它的类加载器, 一起具备了一种层级关系。由于父加载器总是拥有优先加载一个类的机会, 那么当不同的 child class loader 试图加载一个属于更高层级的parent class loader 加载范围的 class 时, 该请求总会被转发给对应的最高层级的父加载器, 返回一致的结果。

    套接字

    英文原文: socket

    socket原意是插座。套接字是一种通信机制。
    外国人用socket来命名这种通信机制是很自然的。因为通信要建立连接。作者是想表达建立网络连接和插插座一样,一方去“插”一方“被插”。

    至于为啥要翻译成套接字这么一个奇怪的东西,据说至今还是一个谜。

    个人揣度一下,套接,就像你买的扫帚的棍子,是不是在一起就起来了?这就表达了一个连接的意思。字呢,是一种表达信息的媒介。所以翻译者的意思应该是实现连接的媒介的意思。

    套接字

    可能猜的不对,但这么一解释感觉这个词看着都亲切了些!

    句柄

    英文原文:handle

    句柄的英文是 handle。在英文中,有操作、处理、控制之类的意义。作为一个名词时,是指某个中间媒介,通过这个中间媒介可控制、操作某样东西。这样说有点抽象,举个例子。door handle 是指门把手,通过门把手可以去控制门,但 door handle 并非 door 本身,只是一个中间媒介。又比如 knife handle 是刀柄,通过刀柄可以使用刀。

    我们常说扛把子,对吧,拿着handle的那个人就是大哥,可以操作小弟。

    让人难理解的是这个句。为啥叫句柄啊?明明很多时候操作的不是句子。好吧,还是翻译的锅。

    David Gries所著的《Compiler Construction for Digital Computer》(1971)有句话

    A handle of any sentential form is a leftmost simple phrase.

    该书中译本,《数字计算机的编译程序构造》(仲萃豪译, 1976 版)翻译成

    任一句型的句柄就是此句型的最左简单短语。

    这可能是句柄一词最早的出处。这里确实是在讨论句子。在这里句柄是个意译的合成词,两个字分拆开,“句柄”中的“柄”,用法就类似于,“刀柄”中的“柄”。用在此处是适当的。但以后将各种资源 handle, 都翻译成句柄时,就容易导致误解了。


    锅柄 handle

    具体到代码实现,handle 通常是某个数字标记,通过标记操作资源。这个标记在不同的场合有不同的叫法,有时叫 ID,有时叫描述符(descriptor)。在 Windows 平台,就叫各种 handle 了。

    用 handle 如何操作真正的资源,是实现的细节。handle 通常被实现为整数,也可以被实现成其他类型。

    广义来说,指针也是某种 handle,可以操作对象。但实际语境中,指针跟句柄是有区别的。handle可以理解为指针之上的一个层级。因为直接操作指针比较危险,并且也不是所有的语言都有指针,这也是为什么有些场景不用指针而用handle的原因。

    英文原文:macro

    还记得最开始学C语言的时候,对这个宏就觉得莫名其妙,觉得很高大上,毕竟宏嘛,大嘛。查了一下维基百科才知道是这么来的:

    Macros are used to make a sequence of computing instructions available to the programmer as a single program statement, making the programming task less tedious and less error-prone.[2][3] (Thus, they are called "macros" because a "big" block of code can be expanded from a "small" sequence of characters.

    翻译一下就是:

    宏用来使得一系列的指令变成单个语句,使得编程不那么乏味以及减少出错。(所以他们被称为‘宏’,因为他们可以从一些很少的语句展开成很大的一个代码块)。

    这个应该是一个英文直译了。没毛病。原命名作者的思维太跳脱,是我没跟上。

    小结

    很多时候,学一个东西会被看起来花里胡哨的名词吓到,实际上名字嘛,只是一个代号而已。管你是叫翠花还是tracy,长的好看不是一样能当网红 - 。- 。就我个人而言,编程大多是应用层面的东西,说真的比物理、数学界的概念好理解多了。

    这篇文章在我的博客里算是很用心的一篇了- 。-(还配了图)。写的过程中还是有不少收获,确实输出也是一种学习啊。也参考了很多文章,都在参考里拉。

    参考

    Java 中的双亲委派的“双”怎么理解 ?https://www.zhihu.com/question/288949359
    面试题之窒息翻译:类加载机制的双亲委派(正解:父委派模型):https://blog.csdn.net/lengxiao1993/article/details/86689331
    Socket为什么要翻译成套接字?https://www.zhihu.com/question/21383903/answer/64103663
    句柄是什么?https://www.zhihu.com/question/27656256/answer/943130123

    相关文章

      网友评论

        本文标题:编程界让人云里雾里的翻译盘点

        本文链接:https://www.haomeiwen.com/subject/xxudvktx.html