Search code examples
versioningnotation

Historic reason for using periods in version numbers?


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?


Solution

  • 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.