在版本号中使用句点的历史原因?

发布于 2024-08-02 19:09:51 字数 369 浏览 6 评论 0原文

使用句点而不是软件版本的任何其他分隔符是否有历史原因?

我们的一款产品以前是 3.5 版本,现在是 3.08 —— 我确信管理层表示,一旦我们达到 3.10,添加前导零将使我们的客户不那么困惑。但作为一名软件开发人员,3.08 版本对我来说看起来很奇怪。

如果我们不使用句点,版本 3:9 和 3:10 或 3-9 到 3-10 之间的差异会更明显,因为它不会被读取为十进制数。此外,对于那些通常不熟悉软件版本控制的人来说,十进制数字似乎意味着版本 3.5 距离下一个主要版本已经过半了,而实际上我们无法对软件版本的数量做出任何假设次要版本直到下一个主要版本。

我知道现在我们通常使用句号作为惯例,因为这是其他人正在做的事情 - 但首先使用句号有什么原因吗?

Is there a historic reason that periods are used instead of any other separator for software versions?

One of our products was previously version 3.5, and now it's 3.08 -- I'm sure this was management saying that putting a leading zero would make it less confusing for our customers once we hit 3.10. But as a software developer, version 3.08 looks strange to me.

If we didn't use periods, the difference between version 3:9 and 3:10 or 3-9 to 3-10 would be more apparent, because it wouldn't be read as a decimal number. Moreover, to someone who is generally unfamiliar with software versioning, the decimal number seems to imply that version 3.5 is halfway to the next major release, when in reality we can't make any assumptions about the number of minor releases until the next major release.

I understand that now we typically use periods as a convention because that's what everyone else is doing - but was there a reason for using periods in the first place?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

情愿 2024-08-09 19:09:52

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

It's not a decimal point. It's just a version seperator.
People on continental europe still use a period for version seperation.

优雅的叶子 2024-08-09 19:09:52

这不是小数点,只是分隔符。他们为什么使用这个符号是未知的,并且作为一个编程问题没有什么意义......

但太多人认为这是一个小数点,导致混乱。但是 Firefox 3.0.13 或其他 1.9.0.5213 又如何呢?主要编号、次要编号、修订号和内部版本号并不少见(至少在 Microsoft 世界中......)。

That's not a decimal point, just a separator. Why they used this symbol is unknown and of little interest as a programming question...

But too much people think this is a decimal point, leading to confusion. But what about Firefox 3.0.13 or whatever 1.9.0.5213? Major number, minor number, revision number and build number are not uncommon (at least in the Microsoft world...).

我不是你的备胎 2024-08-09 19:09:52

我认为想出一个新号码比想出一个新名字更容易。就连微软也再次恢复了他们的常规编号方案,从 Windows 2、3、3.1、3.11 到 95、98、ME、2000、XP、Vista,现在又回到了 7。
此外,使用字母代码可能会导致不必要的关联。例如,我们有 Windows CE、ME 和 NT,这三种不同的 Windows 系统几乎同时运行。 (只需将字母放在一起即可。)至少,使用数字,您不会有意外拼出一些奇怪单词的风险。 (再说一遍,Borland/Codegear/Embarcadero 确实跳过了 Delphi RAD 工作室的第 13 版。)出于某些邪恶的原因,人们也倾向于避免使用 6.66 或 6.6.6 这样的版本号......

I think it's easier to just come up with a new number than a new name. Even Microsoft has returned to their regular numbering scheme again, going from Windows 2, 3, 3.1, 3.11 to 95, 98, ME, 2000, XP, Vista and now back to 7.
Besides, using letter codes might result in unwanted associations. E.g. we have Windows CE, ME and NT which are three different Windows system that were all operational at about the same moment. (Just put the letters together.) At least, with numbers you don't have the risk of accidently spelling out some strange words. (Then again, Borland/Codegear/Embarcadero did skip version 13 of the Delphi RAD studio.) People also tend to avoid version numbers like 6.66 or 6.6.6 for some devilish reasons...

云柯 2024-08-09 19:09:51

正如 DVK 所建议的,它几乎可以肯定源自 SCCS,即原始的源代码控制系统。它使用的数字是 1.1, 1.2, ... 3.14, 3.15, ... 等等。

如果您想要比这更深层的原因,您可能想问 Marc Rochkind(创建 SCCS)。

编辑:好吧,我自己给马克·罗奇金德发了电子邮件,他说:

我认为这是从十进制数字的类比开始的。版本1、版本2、版本2.1等等,然后添加更多的小数,这根本没有数学意义,但无论如何它只是一个字符串。

我不认为它起源于 SCCS。我认为这个方案在 1972 年我第一次开始 SCCS 工作时就已经在使用了,所以对于贝尔实验室的我们来说这本来是很正常的事情。所以这是“SCCS 用作自己灵感的早期惯例”。

...所以,我想知道是否 ALGOL 已被编码以使用欧洲惯例对于小数点,如果我们都使用逗号作为版本分隔符......

As DVK suggested, it almost certainly derives from SCCS, the original Source Code Control System. The numbers it used were 1.1, 1.2, ... 3.14, 3.15, ... etc.

If you want a deeper reason than that, you might want to ask Marc Rochkind (created SCCS).

Edit: okay, I emailed Marc Rochkind myself, and he said:

I think this started by analogy with decimal numbers. Version 1, version 2, version 2.1, etc., etc. Then adding more decimals, which makes no mathematical sense at all, but it's just a string anyway.

I don't think it originated with SCCS. I think this scheme was already in use by 1972 when I first started work on SCCS, so for us at Bell Labs it would have been the normal thing. So it's "earlier convention that SCCS used as its own inspiration".

... So, I wonder if ALGOL had been coded to use the European convention for the radix point, if we would all be using commas for our version separators instead ...

嗫嚅 2024-08-09 19:09:51

我的猜测是它与早期操作系统命名约定有关。当您拥有第二个版本时,您要做的第一件事是标记特定于该版本的所有文件和目录。

查看维基百科,“/”、“\”、“:”甚至“%”和“#”都对文件的位置有影响,因此作为文件名会出现问题,特别是在相当原始的操作系统中。

“-“, “_“ 和 ”。”都经常在文件名中使用,因此它们可用于版本命名。

但“-”已经在日期格式中使用了很长时间。

我实际上认为十进制模型并不是那么糟糕。虽然它确实表明 1.5 介于 1 和 2 之间,但它也表明 1.1 版本与 1.0 版本相比的变化并不像 2.0 版本那么大。它可以指出基线的明显变化。

My guess is it has something to do with early operating system naming conventions. The first thing you want to do when you have a second version, is label any files and directories that are specific to that version.

Looking at Wikipedia, "/", "\", ":" and even "%" and "#" have implications to the location of the file, and would therefore be problematic as file names, particularly in a fairly primitive operating system.

"-", "_" and "." are all regularly used in filenames, so they'd be available for version naming.

But "-" has been used in date formats for a long time.

I'd actually argue that the model of decimal isn't such a bad one. While it does suggest that 1.5 is halfway between 1 and 2 -- it also suggests that the 1.1 version is not not as big a change from the 1.0 version as the 2.0 version will be. And it makes it possible to point out noticeable shifts in the baseline.

百善笑为先 2024-08-09 19:09:51

我不确定确切的原因,但一种可能的影响可能是代码存储库系统(例如 RCS/CVS)施加的版本控制 - 当然,它发现数字比字符串更容易操作。

此外,无论谁想出使用十进制表示法,当时都可能没有想到大于九的颠覆或子颠覆。除了这两个限制之外,十进制表示法确实可以作为软件版本状态的直观近似值。

I'm not certain of the exact reason, but one possible influence may have been the versioning imposed by code repository systems (such as RCS/CVS) - which of course find the numbers much easier to manipulate than strings.

In addition, whoever came up with using decimal notation probably wasn't thinking at the time of either greater-than-nine subversions, or sub-subversioning. Those two limitations aside, decimal notation does serve as a decently intuitive approximation to software version's status.

泪之魂 2024-08-09 19:09:51

我发现的唯一有趣的事情是维基百科条目中关于软件验证的这一部分,其中状态(引用)

打印时,序列可能是
用字符分隔。选择
字符及其用法各不相同
通过计划。以下列表显示
假设的分离例子
同一版本的方案(
第十三次三级修订
第四次二级修订
第二次一级修订):

  • 方案可以在所有序列之间使用相同的字符:2.4.13、2/4/13、
    2-4-13
  • 分离序列的方案选择可能不一致,
    分离一些序列但不分离
    其他:2.413
  • 方案对字符的选择可能在同一方案中不一致
    标识符:2.4_13

当使用句点分隔时
序列,它不代表
小数点
,并且序列确实
不具有位置意义。一个
例如,2.5 的标识符是
不是“两个半”或“一半”
第三版”,这是第五版
第二次二级修订
一级修订,不会
适当[需要引用]除非
曾有 2.1、2.2、2.3 和
2.4.

The only interesting thing I find is this part of the Wikipedia entry about Software verisonning, which states (quoting) :

When printed, the sequences may be
separated with characters. The choice
of characters and their usage varies
by scheme. The following list shows
hypothetical examples of separation
schemes for the same release (the
thirteenth third-level revision to the
fourth second-level revision to the
second first-level revision):

  • A scheme may use the same character between all sequences: 2.4.13, 2/4/13,
    2-4-13
  • A scheme choice of which sequences to separate may be inconsistent,
    separating some sequences but not
    others: 2.413
  • A scheme's choice of characters may be inconsistent within the same
    identifier: 2.4_13

When a period is used to separate
sequences, it does not represent a
decimal point
, and the sequences do
not have positional significance. An
identifier of 2.5, for instance, is
not "two and a half" or "half way to
version three", it is the fifth
second-level revision of the second
first-level revision, and would not be
appropriate[citation needed] unless
there had been a 2.1, 2.2, 2.3, and
2.4.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文