🤔 什么是递归缩写命名?
递归(recursion),是计算机科学中,一种程序调用自身的编程技巧。
举一个 C 语言递归函数调用的例子:
1 |
|
递归缩写(Recursive acronym)命名呢?即递归首字缩写,是一种在全称中递归引用它自己的缩写。
🔍 递归缩写命名历史
“在计算机领域,使用递归缩写是黑客社区中的一个较早的传统,后来又有一些牛人把自己开发的产品或者技术使用了这种方式来命名。”
“最早的递归缩写命名的实例应该是 1977 年或 1978 年出现的 TINT 编辑器,其命名为 ‘TINT Is Not TECO’(TINT 不是文字编辑器和修正器),它是一个 MagicSix 的编辑器。这又启发了麻省理工大学的两个 Lisp Machine 编辑器的命名,一个叫做 EINE(‘EINE Is Not Emacs’,EINE 不是 Emacs),另一个是 ZWEI(‘ZWEI Was EINE Initially’,ZWEI 一开始是 EINE)。熟悉 Linux 的童鞋一定对 GNU 不陌生,Richard Stallman 的 GNU(GNU’s not UNIX,GNU 不是 UNIX)同样也是如此的幽默。如GNU一样,许多递归缩写包括否定语,通常用来指出这个缩写指代的事物 a 不是与另一个事物 b 相类似(但事实上,这个事物 a 通常与 b 非常相似甚至是 b 的衍生品)。”
👆 上两段均摘自网络
🎈 其他一些递归缩写命名
PNG:PNG’s Not GIF,一种图像文件存储格式,其设计目的是试图替代 GIF 和 TIFF 文件格式,同时增加一些 GIF 文件格式所不具备的特性。PNG 的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”
EMACS — EMACS Makes A Computer Slow,其自我调侃的意味就太明显了,大概也是对自己集成的强大的功能洋洋得意吧。
NoSQL — Not Only SQL,提倡运用非关系型数据库的数据存储。