在版本号中使用句点的历史原因?
使用句点而不是软件版本的任何其他分隔符是否有历史原因?
我们的一款产品以前是 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这不是小数点。它只是一个版本分隔符。
欧洲大陆的人们仍然使用句点来分隔版本。
It's not a decimal point. It's just a version seperator.
People on continental europe still use a period for version seperation.
这不是小数点,只是分隔符。他们为什么使用这个符号是未知的,并且作为一个编程问题没有什么意义......
但太多人认为这是一个小数点,导致混乱。但是 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...).
我认为想出一个新号码比想出一个新名字更容易。就连微软也再次恢复了他们的常规编号方案,从 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...
正如 DVK 所建议的,它几乎可以肯定源自 SCCS,即原始的源代码控制系统。它使用的数字是 1.1, 1.2, ... 3.14, 3.15, ... 等等。
如果您想要比这更深层的原因,您可能想问 Marc Rochkind(创建 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:
... 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 ...
我的猜测是它与早期操作系统命名约定有关。当您拥有第二个版本时,您要做的第一件事是标记特定于该版本的所有文件和目录。
查看维基百科,“/”、“\”、“:”甚至“%”和“#”都对文件的位置有影响,因此作为文件名会出现问题,特别是在相当原始的操作系统中。
“-“, “_“ 和 ”。”都经常在文件名中使用,因此它们可用于版本命名。
但“-”已经在日期格式中使用了很长时间。
我实际上认为十进制模型并不是那么糟糕。虽然它确实表明 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.
我不确定确切的原因,但一种可能的影响可能是代码存储库系统(例如 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.
我发现的唯一有趣的事情是维基百科条目中关于软件验证的这一部分,其中状态(引用):
The only interesting thing I find is this part of the Wikipedia entry about Software verisonning, which states (quoting) :