Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

讨论关于“lifetime”的翻译 #9

Open
upsuper opened this issue Jun 10, 2019 · 13 comments
Open

讨论关于“lifetime”的翻译 #9

upsuper opened this issue Jun 10, 2019 · 13 comments

Comments

@upsuper
Copy link
Contributor

upsuper commented Jun 10, 2019

“lifetime”这个词的中文翻译有一定争议,在此列举出一些常见翻译并试图分析它们的利弊。

  • 生命周期
    • 优点:被较为广泛的使用,熟悉的人较多
    • 缺点:这个翻译是错的,原词中并不存在周期之意,“生命周期”的对应英文应为“life cycle”
  • 生存期
    • 优点:与原词的含义一致,而且简短
    • 缺点:可能不算常用词?
  • 生存时间
    • 优点:与原词的含义一致
    • 缺点:可能比“生存期”要更拗口?
  • 寿命
    • 优点:简单
    • 缺点:用寿命来形容程序内的对象比较奇怪?
    • 优点:简单
    • 缺点:某些语境下比较拗口,而且不明所以

欢迎补充

@ZhangHanDong
Copy link
Contributor

lifetime还是生命周期更贴切,因为Rust里lifetime 最主要是要关注引用在函数之间的传递安全。在不同的函数调用里传递,那就是“周期”,“生命的轮回”。

@aaranxu
Copy link
Member

aaranxu commented Jun 21, 2019

个人觉得使用“生命周期”更好。

一方面这个单词本身中文有这个意思,在英文中解释也差不多表达一样的意思。
另一方面“生命周期”这个词语其实在中文计算机语言中已经是出现多年的词汇,也就是在 Rust 出现之前已经有相关的表达中文表达,比如 C++ 就有一模一样的这个表达,也是代表这个概念。类似地,英文的 “object” 这个词翻译成 “对象” 其实也不怎么准确,但是已经约定俗成后,现在所有翻译的 object 都使用 对象,而不是翻译成 “物件” 等其他的翻译。

@aaranxu
Copy link
Member

aaranxu commented Jun 21, 2019

英文翻译成中文,最大的考量是惯例,如果是已经有约定俗成的译法,而且较为通行的话,那么即便后来可能会有更好的表达,也不会直接说改变成新的词语,比如“Holmes” (中文 “福尔摩斯”)是在民国时期就翻译的,但是对后来的普通话来说这个翻译并不合适,只是因为这个已经在在大量的书籍和报纸中使用这个名称了,可以说今天已经是没有异议的翻译了。

而 lifetime 这个词语,在 C++ 11 的时候就已经有翻译成中文,而且在中文计算机术语中也较为流行了,所以对于 Rust 来说最好也是沿用历史的译法,因为意思概念都是一样的。

宗旨就是我们并不是创造新的词汇,而是尽可能采用已经广泛使用的惯例译法。

@krystollia
Copy link

支持“生命周期”,这个词在业界已经算是很通用的词了。

@crlf0710
Copy link

C++ 的相关文档:
生存期(cppreference) https://zh.cppreference.com/w/cpp/language/lifetime
生存期(微软官方文档) https://docs.microsoft.com/zh-cn/cpp/c-language/lifetime?view=vs-2019

@NOVA-ME
Copy link

NOVA-ME commented Aug 16, 2019

生存区间?学了rust感觉这个lifetime和数学的区间挺像,不过感觉翻译成生存期更好

@aaranxu
Copy link
Member

aaranxu commented Aug 19, 2019

C++ 的相关文档:
生存期(cppreference) https://zh.cppreference.com/w/cpp/language/lifetime
生存期(微软官方文档) https://docs.microsoft.com/zh-cn/cpp/c-language/lifetime?view=vs-2019

对于 lifetime 这个单词我在多本 C++ 的书籍中都有看过,均翻译成 “生命周期”,以下举出几本最有说服力的图书,以下只列出 lifetime(生命周期)首次出现的位置,我翻过其他位置,书中都是统一翻译成生命周期,大家可以仔细考证:
《C++ Primer》中文版第5版,184页,章节:6.1.1 局部对象;
《C++ 程序设计语言》(第1~3部分)原书第4版的中文版,55页,章节:3.2.1.2 容器;
《C++ Primer Plus》(第6版)中文版,117页,章节:4.8.5 自动存储、静态存储和动态存储。

@crlf0710
Copy link

crlf0710 commented Aug 19, 2019

继续补充:侯捷老师的《英中繁簡編程術語對照》中lifetime词条:
(原地址不可考,这里是转载 https://github.com/xiaq/boost-doc-zh/blob/master/glossary/term_jjhou.txt)

英文                    繁体译词
                      (有些是侯捷个人喜好,普及与否难说)      大陆惯用术语
---------------------------------------------------------------------------------------
lifetime                生命期、寿命                               生命期、寿命

@ZhangHanDong
Copy link
Contributor

「生命周期」已经成惯用语了

@lihsai0
Copy link
Contributor

lihsai0 commented Jun 11, 2021

个人支持「生存期」用于和「生命周期(life cycle)」区分

@KarsonChaw
Copy link

个人建议使用[有效期]比较贴近lifetime在Rust的语义。

@bhuztez
Copy link

bhuztez commented Jul 25, 2022

翻译成生涯更好。庄子曰吾生也有涯,lifetime最重要的就是给你活着的时间划了一个边界

@ZhangHanDong
Copy link
Contributor

翻译成生涯更好。庄子曰吾生也有涯,lifetime最重要的就是给你活着的时间划了一个边界

我喜欢这个名称

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants