使用点号表示版本号的历史原因是什么?

16

软件版本为什么使用句点而非其他分隔符?这个习惯是否有历史渊源?

我们的一款产品之前版本为3.5,现在则是3.08——我相信这是管理层表示在我们发布3.10时,加上前导零会让顾客更不容易混淆。但是对于软件开发者来说,版本号3.08看起来很奇怪。

如果我们不使用句点,那么版本3:9和3:10或3-9到3-10之间的差异将更加明显,因为它不会被当作小数来解读。此外,对于不太熟悉软件版本控制的人来说,小数似乎意味着版本3.5已经完成了下一个主要版本的一半,但事实上,在下一个主要版本之前,我们无法做出任何关于次要版本数量的假设。

我知道现在我们通常使用句点作为惯例,因为其他人也这样做了——但是使用句点最初的原因是什么呢?


2
Ubuntu 9:01 的书籍? :-) - Franci Penov
可能会有帮助:http://technologizer.com/2009/07/14/version-numbers/ - ESRogs
8个回答

12
正如DVK所建议的那样,它几乎肯定源自SCCS,即原始的源代码控制系统。 它使用的数字是1.1、1.2、3.14、3.15等。
如果你想要比这更深刻的原因,你可能想问Marc Rochkind(创建了SCCS)。
编辑:好吧,我给Marc Rochkind发了电子邮件,他说:
我认为这是从十进制数类比而来的。 版本1,版本2,版本2.1等等。然后添加更多小数点,这在数学上根本没有意义,但它只是一个字符串。 我不认为它起源于SCCS。 我认为这个方案早在1972年我第一次开始开发SCCS时就已经在使用了,所以对于我们在贝尔实验室的人来说,这将是正常的事情。 所以它是“SCCS用作自己灵感的早期约定”。
...所以,我想知道如果ALGOL编码使用欧洲约定作为基数点,我们是否会使用逗号作为我们的版本分隔符...

因此,我们再次发现所有的一切都始于al-Khwārizmī。 - Zac Thompson
感谢您进行研究,了解到这个惯例至少早在贝尔实验室就很有趣。在您编辑之前我已经为您点赞了,所以很抱歉不能再次点赞。 - Mark Rushakoff

6
我不确定确切的原因,但可能的一个影响因素是代码存储库系统(如RCS/CVS)强制执行的版本控制 - 当然,这些系统发现数字比字符串更容易操作。此外,提出使用十进制符号的人可能当时并没有考虑到大于九个子版本或子子版本的情况。除了这两个限制之外,十进制符号确实是软件版本状态的相当直观的近似表示。

CVS在标签名称中不允许使用句点,这真是一件痛苦的事情。 - ShuggyCoUk

6
我猜想这可能与早期操作系统命名约定有关。当你有第二个版本时,首先要做的是标记任何特定于该版本的文件和目录。
查看维基百科,"/"、"\"、":",甚至"%"和"#"都会对文件位置产生影响,因此作为文件名会有问题,尤其是在一个相当原始的操作系统中。
"-"、"_"和"."在文件名中都经常被使用,因此它们可以用于版本命名。
但"-"长期以来已经被用在日期格式中。
实际上,我认为十进制模型并不是一个坏选择。虽然它确实暗示了1.5处于1和2之间,但它也表明1.1版本与1.0版本相比,变化不会太大,而2.0版本将发生较大变化。这使得可以指出基线中的显著变化。

5
我唯一感兴趣的是维基百科关于软件版本控制的 这个部分,其中提到:(引用) :

在打印时,可以使用字符来分离序列。 字符的选择和使用因方案而异。 以下列表显示了相同发布版本(第二个首级修订版本的第13个第三个修订)的分隔方案的假设示例:

  • 某个方案可能在所有序列之间使用相同字符:2.4.13,2/4/13,2-4-13
  • 方案选择要分隔哪些序列可能不一致,分隔某些序列而不分隔其他序列:2.413
  • 方案中字符的选择可能在同一标识符中不一致:2.4_13

当使用句点分隔序列时,它不表示小数点,序列没有位置意义。例如,标识符2.5不是“两个半”或“到第三个版本一半”,而是第二个首级修订版本的第五个第二级修订版本,除非出现2.1、2.2、2.3 和 2.4,否则将不适用。


1
除非您试图赶上竞争对手,否则这些内容并不恰当 :) http://zh.wikipedia.org/wiki/Oracle_Corporation#RDBMS_发行时间表 - Jeremy Powell
...或者根据维基百科的文章,因为没有人想购买第一版产品。 - Jeremy Powell

2
你可能会想知道为什么小数点被用来终止句子。08 太令人困惑了!

1

这不是小数点,只是一个版本分隔符。欧洲大陆的人们仍然使用点作为版本分隔符。


0

那不是小数点,只是一个分隔符。为什么使用这个符号是未知的,对于编程问题来说也没有太大的兴趣...

但是太多人认为这是小数点,导致混淆。但是 Firefox 3.0.13 或者 1.9.0.5213 呢?主版本号、次版本号、修订号和构建号并不罕见(至少在微软世界中...)。


0
我觉得比起起一个新名字,取个新的数字会更容易。就连微软也重新回到了他们的常规编号方案,从Windows 2, 3, 3.1, 3.11 到 95, 98, ME, 2000, XP, Vista,现在又回到了7。 此外,使用字母代码可能会导致意想不到的关联。例如,我们有Windows CE、ME和NT,这是三种完全不同的Windows系统,几乎同时运行。至少,用数字的话就没有意外拼写出奇怪单词的风险。(当然,Borland/Codegear/Embarcadero 跳过了Delphi RAD Studio的第13个版本。)人们也倾向于避免使用像6.66或6.6.6这样的版本号,因为某些与魔鬼相关的原因...

除了微软的例子,我同意你的观点。我认为他们回归数字是因为这看起来更加严肃,对于公司来说更有利。他们会尽一切可能避免再次像Vista那样全球失败的情况。 - p4bl0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接