开源名称的含义是什么?

有没有想过您最喜欢的开源项目或编程语言的名称从何而来?了解从 A 到 Z 的流行技术术语背后的起源故事。
196 位读者喜欢这篇文章。
How to make release notes count

Opensource.com

GNOME、Java、Jupyter、Python。如果您的朋友或家人曾经偷听您的工作对话,他们可能会认为您从事文艺复兴时期的民间传说、咖啡烘焙、天文学或动物学。这些开源技术的名称从何而来?我们向我们的作者社区征求了意见,并整理了一些我们最喜欢的技术名称起源故事。

Ansible

“Ansible”这个名字直接取自科幻小说。厄休拉·勒奎恩的书《罗卡南的世界》中有允许瞬时(超光速)通信的设备,称为 ansibles(显然源自“answerable”一词)。Ansibles 成为科幻小说的主要内容,包括奥森·斯科特·卡德的《安德的游戏》(后来成为一部流行的电影),其中该设备控制着许多远程宇宙飞船。这似乎是控制分布式机器的软件的一个很好的模型,因此 Michael DeHaan(Ansible 的创建者和创始人)借用了这个名字。

Apache

Apache 是一个开源 Web 服务器,最初于 1995 年发布。它的名字与著名的美洲原住民部落无关;它指的是对其原始软件代码的重复补丁。因此,称为“A-patchy server”。

awk

“awk(1) 代表 Aho、Weinberger、Kernighan(作者)”——Michael Greenberg

Bash

“最初的 Unix shell,Bourne shell,以其创建者命名。在 Bash 开发之时,csh(发音为 'seashell')实际上更受交互式用户登录的欢迎。Bash 项目旨在通过使其更适合交互式使用来赋予 Bourne shell 新的生命,因此它被命名为 'Bourne again shell',这是对 'born again' 的双关语。”——Ken Gaillot

C

“早期,AT&T 的 Ken Thompson 和 Dennis Ritchie 发现,您可以使用更高级的编程语言(而不是低级且可移植性较差的汇编编程)来编写操作系统和工具,这很有趣。有一种早期的编程系统称为 BCPL(Basic Combined Programming Language),Thompson 创建了一个精简版的 BCPL,称为 B。但是 B 不是非常灵活或快速。然后 Ritchie 采用了 B 的思想,并将其扩展为一种称为 C 的编译语言。”——Jim Hall

dd

“我认为您不能在不提及 dd 的情况下发表这样的文章。我的昵称是 Didi。正确发音,听起来像 'dd'。我第一次学习 Unix,然后在 1993 年作为学生学习了 Linux。然后我去了军队,来到了我单位中极少数使用 Unix (Ultrix) 的部门之一(其余部门主要使用 VMS),那里的人之一说:'所以,您是黑客,对吧?您认为您了解 Unix?好的,那么 dd 名称的原因是什么?'我不知道,并试图猜测:“数据复制器?”所以他说,'我会告诉您 dd 的故事。dd 是 convert and copy 的缩写(任何人今天仍然可以在手册页上看到),但是由于 cc 已经被 c 编译器占用,所以它被命名为 dd。' 几年后,我才听说关于 JCL 的数据定义以及 Unix dd 命令的非统一、半开玩笑的语法在某种程度上基于它的真实故事。”——Yedidyah Bar David

Emacs

经典的 anti-vi 编辑器,该名称的真正词源并不引人注目,因为它源自 "Editing MACroS"。然而,作为宗教界非常反对和崇拜的对象,它吸引了许多恶搞的逆向首字母缩略词,例如 "Escape Meta Alt Control Shift"(以恶搞其对击键的严重依赖),"Eight Megabytes And Constantly Swapping"(从那时起,这已经是很大量的内存了),"Eventually malloc()s All Computer Storage" 和 "EMACS Makes A Computer Slow"。”——改编自 Jargon File/Hacker's Dictionary

Enarx

Enarx 是保密计算领域的一个新项目。该项目的设计原则之一是它应该是“可互换的”,因此最初的名称是“psilocybin”(著名的迷幻蘑菇)。普遍的感觉是,经理类型的人可能会抵制,因此考虑了新的名称。该项目的两位创始人 Mike Bursell 和 Nathaniel McCallum 都是古代语言爱好者,因此他们考虑了许多不同的想法,包括 тайна (Tayna—俄语,意思是秘密或神秘—虽然俄语,诚然,不是古代语言,但嘿),crypticon (对希腊语的完全篡改),cryptidion (希腊语,意思是小秘密的地方),arcanus (拉丁语阳性形容词,意思是秘密),arcanum (拉丁语中性形容词,意思是秘密),和 ærn (盎格鲁-撒克逊语,意思是地方、秘密的地方、壁橱、住所、房屋或小屋)。最后,由于各种原因,包括域名和 GitHub 项目名称的可用性,他们最终确定了 enarx,这是两个拉丁语词根的组合:en-(意思是内部)和 -arx(意思是城堡、堡垒或要塞)。

GIMP

如果没有 GIMP,我们会怎么样?GNU 图像处理项目多年来一直是开源的主力军。维基百科指出,“1995 年,Spencer KimballPeter Mattis 开始在加州大学伯克利分校为实验计算设施开发 GIMP 作为学期项目。”

GNOME

您有没有想过为什么 GNOME 被称为 GNOME?根据 维基百科,GNOME 最初是一个首字母缩略词,代表 "GNU Network Object Model Environment"。现在这个名称不再代表该项目,并且已被删除,但该名称仍然保留。GNOME 3 是 Fedora、Red Hat Enterprise、Ubuntu、Debian、SUSE Linux Enterprise 等的默认桌面环境。

Java

您能想象这种编程语言被命名为其他任何名称吗?Java 最初被称为 Oak,但不幸的是,Sun Microsystems 的法律团队否决了这个名称,原因是它已经存在商标。因此,开发团队又回到了绘图板。传说,该语言的工作组在 1995 年 1 月举行了一次大规模的头脑风暴。还抛出了许多其他名称,包括 Silk、DNA、WebDancer 等。团队不希望新名称与过度使用的术语“web”或“net”有任何关系。相反,他们正在寻找更动态、有趣且易于记忆的东西。Java 符合要求,并且奇迹般地,团队达成了共识!

Jupyter

当今许多数据科学家和学生在其工作中使用 Jupyter 笔记本。Jupyter 这个名称是三种开源计算机语言的混合体,这些语言在笔记本电脑中使用并在数据科学中突出:JuliaPythonR

Kubernetes

Kubernetes 源自希腊语,意为舵手。Kubernetes 项目创始人 Craig McLuckie 在 2015 年 Hacker News 回应中证实了这一词源。他想坚持航海主题,他解释说,该技术驱动容器,很像舵手或飞行员驱动集装箱船。因此,Kubernetes 是选定的名称。我们中的许多人仍在努力正确发音(koo-bur-NET-eez),因此 K8s 是可以接受的替代方案。有趣的是,它与英语单词“governor”具有相同的词源,因此与蒸汽机上的机械负反馈装置有共同之处。

KDE

K 桌面怎么样?KDE 最初代表 "Kool Desktop Environment"。它由 Matthias Ettrich 于 1996 年创立。根据 维基百科,该名称是对 Unix 上的 Common Desktop Environment (CDE) 的戏仿。

Linux

Linux 以其发明者 Linus Torvalds 的名字命名。Linus 最初想将他的作品命名为 "Freax",因为他认为以自己的名字命名作品太自负了。根据 维基百科,“Ari Lemmke,Torvalds 在赫尔辛基理工大学的同事,当时是 FTP 服务器的志愿者管理员之一,认为 'Freax' 不是一个好名字。因此,他在服务器上将该项目命名为 'Linux',而没有咨询 Torvalds。”

以下是一些最流行的 Linux 发行版。

CentOS

CentOS 是 Community Enterprise Operating System 的首字母缩略词。它包含来自 Red Hat Enterprise Linux 的上游软件包。

Debian

Debian Linux 于 1993 年 9 月创立,是其创始人 Ian Murdock 和他当时的女友 Debra Lynn 的名字组合。

RHEL

Red Hat Linux 的名字来源于其创始人 Marc Ewing,他戴着一顶红色的康奈尔大学软呢帽,这是他祖父送给他的。Red Hat 成立于 1993 年 3 月 26 日。Fedora Linux 最初是一个志愿者项目,旨在为 Red Hat 发行版提供额外的软件,其名称来源于 Red Hat 的“Shadowman”标志。

Ubuntu

Ubuntu 旨在广泛分享开源,其名称来源于非洲的 ubuntu 哲学,可以翻译为“对他人的仁慈”或“我之所以成为现在的我,是因为我们所有人”。

Moodle

开源学习平台 Moodle 是 "modular object-oriented dynamic learning environment"(模块化面向对象动态学习环境)的首字母缩略词。Moodle 继续成为电子学习的领先平台。全球有近 104,000 个注册的 Moodle 站点。

另外两个流行的开源内容管理系统是 Drupal 和 Joomla。Drupal 的名字来源于荷兰语单词 "druppel",意思是“滴”。Joomla 是斯瓦希里语单词 "jumla" 的英语化拼写,根据维基百科,该词在阿拉伯语、乌尔都语和其他语言中意为“一起”。

Mozilla

Mozilla 是一个开源软件社区,成立于 1998 年。根据其网站,“Mozilla 项目创建于 1998 年,当时发布了 Netscape 浏览器套件源代码。它旨在利用互联网上数千名程序员的创造力,并在浏览器市场中推动前所未有的创新水平。”该名称是 Mosaic 和 Godzilla 的混合词。

Nginx

“许多技术人员试图装酷,并说它是 'n' 'g' 'n' 'x'。很少有人真正做过更深入研究的基本操作,以很快发现该名称实际上应该发音为 'EngineX',指的是强大的 Web 服务器,就像引擎一样。”——Jean Sebastien Tougne

Perl

Perl 的创始人 Larry Wall 最初将其项目命名为 "Pearl"。根据维基百科,Wall 想给这种语言起一个简短且具有积极含义的名称。Wall 在 Perl 正式发布之前发现了现有的 PEARL 编程语言,并更改了名称的拼写。

Piet 和 Mondrian

“有两种编程语言以艺术家 Piet Mondrian 的名字命名。一种称为 'Piet',另一种称为 'Mondrian'。[David Morgan-Mar 写道]:'Piet 是一种编程语言,其中程序看起来像抽象画。该语言以 Piet Mondrian 的名字命名,他是几何抽象艺术领域的先驱。我本来想将该语言称为 Mondrian,但有人用一种看起来很普通的脚本语言抢先一步。好吧,我想我们不能都成为深奥的语言作家。'”——Yuval Lifshitz

Python

Python 编程语言的独特名称来源于其创建者 Guido Van Rossum,他是喜剧团体 Monty Python 的粉丝。

Raspberry Pi

Raspberry Pi 以其微小但强大的功能和价格实惠而闻名,是开源社区的最爱。但是它可爱(且美味)的名字从何而来?在 70 年代和 80 年代,以水果命名计算机是一种流行的趋势。Apple、Tangerine、Apricot... 有人饿了吗?根据对创始人 Eben Upton 的 2012 年采访,“Raspberry Pi”这个名字是对这种趋势的致敬。覆盆子也很小,但味道浓郁。名称中的 "Pi" 暗示最初该计算机只能运行 Python。

Samba

服务器消息块,用于在 Linux 上共享 Windows 文件。

ScummVM

ScummVM (Script Creation Utility for Maniac Mansion Virtual Machine) 是一个程序,它可以使在现代计算机上运行一些经典的计算机冒险游戏成为可能。最初,它旨在玩使用 SCUMM 构建的 LucasArts 冒险游戏,SCUMM 最初用于开发 Maniac Mansion,然后用于开发 LucasArts 的大多数其他冒险游戏。目前,ScummVM 支持大量游戏引擎,包括 Sierra Online 的 AGI 和 SCI,但仍保留 ScummVM 名称。一个相关的项目 ResidualVM,之所以得名,是因为它涵盖了 ScummVM 未涵盖的“剩余”LucasArts 冒险游戏。ResidualVM 涵盖的 LucasArts 游戏是使用 GrimE (Grim Engine) 开发的,GrimE 首先用于开发 Grim Fandango,因此 ResidualVM 名称是一个双关语。

SQL

“您可能知道 [SQL] 代表 Structured Query Language(结构化查询语言),但是您知道为什么它通常发音为 'sequel' 吗?它是作为原始 'QUEL' (QUEry Language) 的后续(即续集)而创建的。”——Ken Gaillot

XFCE

XFCE 是由 Olivier Fourdan 创建的流行桌面。它最初是作为 1996 年 CDE 的替代品而开始的,其名称最初是 XForms Common Environment 的首字母缩略词。

Zsh

Zsh 是一个交互式登录 shell。1990 年,普林斯顿大学学生 Paul Falstad 编写了 shell 的第一个版本。他看到普林斯顿大学的助教 Zhong Sha (zsh) 的登录 ID 后,以他的名字命名,并认为这听起来像一个 shell 的好名字

此列表中还有许多我们未包含的项目和名称。请务必在评论中分享您最喜欢的项目和名称。

接下来阅读什么
标签
User profile image.
Lauren 是 Opensource.com 的执行编辑。当她不组织编辑日历或深入研究数据时,她会带着她的家人和德国牧羊犬救援犬 Quailford 去冒险。她热衷于传播开源技术和原则如何应用于技术行业以外的领域(例如教育和政府)的意识。
User profile image.
教育家、企业家、开源倡导者、终身学习者、Python 教师。教育心理学硕士,教育领导学硕士,Linux 系统管理员。
User profile image.
我从 1997 年左右开始接触开源,并且从那时起一直运行 (GNU) Linux 作为我的家庭和工作主要桌面:并非总是容易...  我是一名安全人员和架构师,Enarx 项目的联合创始人,目前是一家初创公司的首席执行官

15 条评论

在 Unix 时代,dd 是设备到设备复制,据我所知仍然是。

我再补充一个

FreeDOS 之所以如此命名,是因为它是 DOS 操作系统的免费版本。它最初被命名为 PD-DOS,因为它最初由许多公共领域实用程序组成。此外,PD-DOS 还借鉴了其他 DOS 名称,例如 Microsoft 的 MS-DOS 和 Digital Research 的 DR-DOS 以及 IBM 的 PC-DOS。

DOS 的意思是磁盘操作系统。最初指的是 5 1/4 英寸 360 千字节的软盘。

Zope 是一个免费开源的 Web 应用程序服务器,用面向对象的编程语言“Python”编写。

前几天我被提醒了文本操作实用程序 unix2dos 和 dos2unix,我觉得这很有趣,因为即使它引用的两个特定操作系统几乎已被完全取代,它们仍然有用。(无意冒犯,Jim,我仍然喜欢 FreeDOS!)

我也总是对 fsck 实用程序感到有点傻笑。

我听说过关于 PERL 的故事的一个版本,并且从我对 Larry Wall 的一点了解来看,它具有真实性,但我也听说还有另一种逆向首字母缩略词选项:Practical Extraction and Reporting Language,或者如维基百科文章中所述,Larry Wall 的版本:Pathologically Eclectic Rubbish Lister。

这是我了解的另一个:FRED (friendly editor) - QED 的一个版本,在 70 年代和 80 年代在 Honeywell 大型机上运行。它有点让人想起 vi(和 vim)以及它们早期版本中的 Ex

Aaargh FRED 不是开源的!我记得游说我们的 IT 部门经理购买它。我在大学时代在 Unix 终端上学到了它。他最终批准了它,有一段时间我处于编辑器的天堂。

ClickHouse(开源分析数据库管理系统)的名称是通过将“clickstream”和“data warehouse”连接起来而命名的。因为它最初是为点击流数据处理而开发的。

我是 Monty Python 的粉丝,所以我真的很喜欢学习用 Python 编程 :)

Python 的文档和示例中充满了对该节目的引用(spam and eggs 是最突出的,我猜)。

它的社区也是如此:有 Eric IDE 和 Python 的内置 IDE 称为 IDLE,两者都以 Monty Python 的 Eric Idle 命名。

但我认为我最喜欢的是 GNU Hurd,来自 https://en.wikipedia.org/wiki/GNU_Hurd:

“现在是时候[解释]“Hurd”的含义了。“Hurd”代表“Hird of Unix-Replacing Daemons”。然后,“Hird”代表“Hurd of Interfaces Representing Depth”。据我所知,我们在这里拥有第一个以一对相互递归的首字母缩略词命名的软件。

— Thomas (then Michael) Bushnell'”

好的,这是我多年来发现的几个。

dd 是磁盘转储或磁盘销毁器,取决于情况。
XFCE 是 eXtra Fine Computing Environment(超精细计算环境)。

我不再能够找到这些的互联网来源,但是,嘿,它们无论如何都不错。;-)

daemon 是什么意思?

奇怪的是,GNU 在整篇文章中被多次提及,但其名称从未解释过。它太出名了,无需解释吗?恐怕,对于年轻一代来说,不再是这样了,不幸的是。

我提名它为“奇怪名称”竞赛的明确获胜者:它是一个动物的名字(如 Python)、文字游戏首字母缩略词(如 KDE)以及如何发音的单词(如 SQL)的结合体。

无论如何,没有人能比 Richard Stallman 博士本人解释得更好,所以这是从他的演讲 [0] 中摘录的

| 因此,我们开始工作所要做的就是为该系统找到一个名称。现在,我们黑客总是为程序寻找一个有趣或不正经的名称,因为想到人们会因该名称而感到有趣是编写程序乐趣的一半。[笑声] 我们有一个递归首字母缩略词的传统,即说您正在编写的程序与某些现有程序相似。您可以给它一个递归首字母缩略词名称,说明:这个不是另一个。因此,例如,在 60 年代和 70 年代,有很多 Tico 文本编辑器,它们通常被称为 something-or-other Tico。然后一位聪明的黑客将他的编辑器称为 Tint,即 Tint Is Not Tico -- 第一个递归首字母缩略词。1975 年,我开发了第一个 Emacs 文本编辑器,并且有很多 Emacs 的模仿者,其中很多都被称为 something-or-other Emacs,但其中一个被称为 Fine,即 Fine Is Not Emacs,还有一个 Sine,即 Sine Is Not Emacs,还有一个 Eine,即 Eine Is Not Emacs,还有 MINCE,即 Mince Is Not Complete Emacs。[笑声] 这是一个精简的模仿版本。然后,Eine 几乎完全重写,新版本称为 Zwei,即 Zwei Was Eine Initially。[笑声]
|
| 因此,我寻找了 Something is not UNIX 的递归首字母缩略词。我尝试了所有 26 个字母,发现其中没有一个是单词。[笑声] 嗯,尝试另一种方法。我做了一个缩写。这样我就可以得到一个三个字母的首字母缩略词,即 Something's not UNIX。我尝试了字母,然后我遇到了单词“GNU”——单词“GNU”是英语中最有趣的单词。[笑声] 就是它了。当然,有趣的原因是根据词典,它的发音是“new”。你明白了吗?因此,这就是为什么人们将其用于许多文字游戏的原因。让我告诉您,这是一个生活在非洲的动物的名字。非洲的发音中有一个点击声。[笑声] 也许仍然有。因此,欧洲殖民者到达那里时,他们懒得学习说这个点击声。因此,他们只是将其省略了,并写了一个“G”,意思是“应该在这里发出另一个声音,但我们没有发音”。[笑声] 因此,今晚我将前往南非,我恳求他们,我希望他们能找到可以教我发出点击声的人,[笑声] 这样我就知道在它是动物时如何正确发音 GNU。
|
| 但是,当它是我们系统的名称时,正确的发音是“guh-NEW”——发音为硬“G”。如果您谈论“new”操作系统,您会让人们非常困惑,因为我们已经为此工作了 17 年了,因此它不再是新的了。[笑声] 但它仍然是,并且永远都是 GNU——无论有多少人错误地称其为 Linux。[笑声]

[0] https://gnu.ac.cn/philosophy/rms-nyu-2001-transcript.txt

好主意!您可能可以看出,此列表并未涵盖*所有*名称,仅涵盖其中的一些名称。也许 GNU 项目会出现在后续文章中。我们还有另一篇关于特定项目名称 (POSIX) 的文章,因此再来一篇也不是不可能。

回复 作者:Dmitry

Koku!但这是一个可爱的名字 :D

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.