Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Amazing World of Software Version Numbers

timothy posted about 5 years ago | from the remember-the-slackware-incident dept.

Software 321

Harry writes "In theory, software version numbers should be incredibly mundane. In reality, companies have long twisted them for marketing purposes, avoided ones they didn't like, and even replaced them with things other than numbers. I've prepared a tribute to them with some facts and ruminations, but there's a lot I don't know, and I'd appreciate help on the historical side of things. (Anyone know when the standard decimal point-based system came into use?)"

cancel ×

321 comments

First V0.1 (-1, Troll)

Anonymous Coward | about 5 years ago | (#28692127)

Upgrade me at your peril!

Re:First V0.1 (-1, Flamebait)

Anonymous Coward | about 5 years ago | (#28692143)

I am excited to announce the general availability of Frosty Piss v2.0. Now with more frost!

Re:First V0.1 (3, Funny)

homes32 (1265404) | about 5 years ago | (#28692277)

don't forget to upgrade to:
V0.1 Basic - you don't really want this cuz we crippled it so you would buy our more expensive packages
V0.1 Premium - just enough of a taste to make you horny for more features in our Platinum package
V0.1 Professional - we stripped out some the the cool stuff and added some features for buisness that you will never use
V0.1 Platinum - this is the best one yet! you get everything!(almost) it will even make you coffee and pancakes and walk your dog!
V0.1 So awesome we can't even tell you the name edition! - we don't know what the hell this is, our marketing guys have been hitting the sauce pretty hard lately.

What now? (5, Funny)

Anonymous Coward | about 5 years ago | (#28692147)

...standard decimal point-based system...

What is this standard you are referring to?

Re:What now? (3, Insightful)

Slashdot Suxxors (1207082) | about 5 years ago | (#28692191)

I'm no coder but to me the X.Y.Z format has always been where Z = minor bug fixes, Y = new features, more bugfixes, whatever, and X = major new features and such.

Re:What now? (1)

CodingHero (1545185) | about 5 years ago | (#28692283)

I think that's pretty common, even where I work. However the following question often arises:

What is the difference between a "minor" bug fix or new feature and a "major" bug fix or new feature?

It seems like a purely subjective issue. Perhaps a coder spent hours tracking down a bug and implementing an ingenious fix that he considers a "major revision" while those who market the project label it "minor." To add futher complexity, do "major" and "minor" differ depending on target market segment? Why not just use a single version number that gets incremented by one every time there is a code change?

Admittedly the last suggestion is silly for a constantly changing codebase such as Windows, but it is a question I have been asked before.

Re:What now? (5, Insightful)

diskis (221264) | about 5 years ago | (#28692589)

1.1.1 -> 1.1.2 - bugfix only, no change in what the end-user sees.
1.1.1 -> 1.2.0 - new features, perhaps a button in the UI has moved. Still fully compatible with the previous version. Documents should be stored identically, network protocols unchanged.
1.1.1 -> 2.0.0 - major release, might very well break functionality, documents may have to be converted from previous versions, UI can change drastically.

Re:What now? (4, Insightful)

w3woody (44457) | about 5 years ago | (#28692695)

My favorite has been

X.Y (B): X: major version as you've outlined.
Y: minor version as you've outlined.
(B): Build number; this is an auto-incrementing number which indicates the build. This is used for QA tracking purposes.
I can also see adding a .Z, as you've also outlined: every public facing build increments Z before shipping, in order to indicate if it is a bug fix. If there is a .Z, then the build number can be hidden from the user--the only purpose it serves is for customer support to know which build the user has so bugs can be tracked appropriately.
I don't see any reason why it needs to be any more complicated than that.

Re:What now? (4, Interesting)

JamesVI (1548945) | about 5 years ago | (#28692635)

The typical three number scheme is derived from the numbering for shared libraries. Often called Major.Minor.BugFix.
You increment the BugFix number when you implement a bug fix that makes no changes whatsoever to the interface. You increment the Minor number when you extend the interface (by adding new features). Both of these changes are backwardly compatible so you can just restart an executable that uses the library without having to rebuild or relink.
If you alter the interface in a non-backwardly compatible way then you must relink your executable before it can work with the new version of the library. The Major number is incremented to indicate a non-backwardly compatible change.

Re:What now? (1)

hedwards (940851) | about 5 years ago | (#28692675)

That sounds about right, and sometimes you'll even add an additional number off the end for times when you're needing to bump the version to make people recompile. Usually that's in ports or similar when somebody screws up the makefile and didn't actually make any code changes, but the changes didn't make it into the compiled version.

Re:What now? (2, Interesting)

Evan Charlton (1498823) | about 5 years ago | (#28692687)

I personally use the X.Y.Z and increment each under the following conditions:
X++: New backwards-incompatible feature. For example, a new database schema would increment X.
Y++: New feature or feature set. For example: Adding a new widget.
Z++: Fixing bugs.
It works pretty well for me.

Why not just use a single version number that gets incremented by one every time there is a code change?

That's what your version control revision is for. Some of us would like to be able to tell at a glance whether having 2.3.4 might cause problems when transferring data to a 3.4.5 installation. You try doing that with between version 36978 and 87498.

Re:What now? (0)

Anonymous Coward | about 5 years ago | (#28692429)

I prefer A.B.C.D.

A = Major
B = Minor (minor upgrades/fixes)
C = Revision (mainly for bug fixes)
D = Build (increased with each build, mainly used to track internal test releases)

Re:What now? (1)

penguinstorm (575341) | about 5 years ago | (#28692507)

Well, clearly you're NOT a code because if you were you would have titled that post "Response 2.1.1 Beta Relase. Do not read on production systems!"

Re:What now? (0)

Anonymous Coward | about 5 years ago | (#28692887)

I'm a COBOL. Get off my lawn, C!

w/r/t Windows (3, Interesting)

gcnaddict (841664) | about 5 years ago | (#28692179)

Windows 7 is NT version 6.1, but that's because of appcompat reasons only.

Microsoft frequently jumps build numbers before milestones (7000 for Beta 1 of Win7, 7600 for RTM)

Microsoft often picks arbitrary numbers for revision builds (used to be buildnum.0, now it's buildnum.16384 as the starting point. Example: Vista RTM is 6000.16386, meaning there were three compiles of build 6000)

Re:w/r/t Windows (1)

mrsteveman1 (1010381) | about 5 years ago | (#28692595)

Windows 7 is NT 6.1 because it's really just a .1 upgrade over Vista (NT 6). If they wanted to lie to applications and change the version number, they could have. They have mountains of other app compatibility settings, the number itself shouldn't hold anything back.

Re:w/r/t Windows (1)

91degrees (207121) | about 5 years ago | (#28692665)

Perhaps, but version numbers are pretty arbitrary. They could call it version 8.4 and then call a major rewrite 8.5 without any significant knock on effect. All programmers care about is whether the version number is greater than or equal to the one they're compatible with.

Re:w/r/t Windows (1)

Anonymous Cowpat (788193) | about 5 years ago | (#28692853)

Gibbering about windows a bit; his list of why Windows 7 is, well, 7 is wrong. It should be:
Windows 1.0
Windows 2.0
Windows 3.0
Windows 95\98\ME
Windows XP
Windows Vista
Windows 7

There was a seperate branch of:
Windows NT4
Windows 2000
Windows XP

XP, of course, being the point where desktop windows & workstation\server windows got joined into one product line (based on NT). Didn't everyone know this already?

Re:w/r/t Windows (1)

91degrees (207121) | about 5 years ago | (#28692945)

Windows XP and Windows 2000 are more or less the same OS. XP has some nice improvements but nothing major. The main change is the UI which, of course, is very noticable.

Re:w/r/t Windows (1)

Sooner Boomer (96864) | about 5 years ago | (#28692963)

Gibbering about windows a bit; his list of why Windows 7 is, well, 7 is wrong. It should be:
Windows 1.0
Windows 2.0
Windows 3.0

Just to be pedantic, there were also important sub-versions in this list you've omitted, ie.: Windows 2.1/286, Windows 2.1/386 see link [wikipedia.org] for details. These we more than just the networking add-on you got with 3.0 > 3.11 .

Re:w/r/t Windows (5, Informative)

subanark (937286) | about 5 years ago | (#28692903)

Actually the reason the minor version number started at 16386 is that the part of the upper bits for the version number are used to indicate branch. In this case the release bit is set to 1, if this was a 'test' build then it would be set to 0. Another bit (which isn't set) is used for the corporate branch, which includes security updates that aren't as fully vetted and changes to core components requested by corporate partners. Additionally, the lower 16 bits of the build (6000) is used to indicate service pack (at least that was the plan right before release). This change to how service packs were handled was done in the last month, and yes Microsoft fudged the version number towards the end so it would be 6000 (although it was close to that at the end).

(I was the performance test engineer for Vista update services during the initial release of Vista)

FFx2 (5, Funny)

T Murphy (1054674) | about 5 years ago | (#28692187)

All I know is with Firefox on 3.5 and Windows on 7.0, Windows must be twice as good as Firefox. AOL of course trumps everyone.

Re:FFx2 (0)

Anonymous Coward | about 5 years ago | (#28692235)

GNU/Emacs is currently at unstable version 23.0.96, if it helps. (Note the slash in there, like GNU/Linux or GNU/HURD.)

Re:FFx2 (0)

Anonymous Coward | about 5 years ago | (#28692273)

Get off slashdot and do something useful for once, RMS.

Re:FFx2 (1)

maxwell demon (590494) | about 5 years ago | (#28692881)

But that's only because at one point in time they dropped the initial "1." because it wouldn't change anymore anyway. So actually, Emacs is at version 1.23.0.96

Re:FFx2 (1)

tnk1 (899206) | about 5 years ago | (#28692263)

You forgot MacOS 10.

And of course, Emacs 22.3

Re:FFx2 (0)

Anonymous Coward | about 5 years ago | (#28692363)

The trick though is that Emacs is now up to 23.0.96! That makes it better than the publishing software in the article, which is only at 23. Also, there were some other dumb mistakes: FORTRAN-66 is cited as the oldest thing with a year in its name--what about ALGOL-60?

Re:FFx2 (0)

Anonymous Coward | about 5 years ago | (#28692561)

algol-60 isn't a year reference it was the number of bottles of Jack it would take to get management to upgrade from algol-50.

Re:FFx2 (2, Funny)

martas (1439879) | about 5 years ago | (#28692497)

so windows 98 is 14 times better than win 7? and of course, win 2000 is by far the best. (actually, that last part I believe. windows 2000 was like windows NT, but with graphics that didn't make you want to pull out your cerebral cortex through your nose.)

First Post 5.0 (3, Funny)

Anonymous Coward | about 5 years ago | (#28692221)

Better late than never!

Different people, different numbering schemes. (1)

mrjb (547783) | about 5 years ago | (#28692231)

Personally I use the following numbering scheme:

major.minor.revisionXY

where the major number is 0 before the software is feature complete (based on original roadmap), 1 means feature complete, and this tends to increment when a full rewrite is done; minor are various milestones, and 'revision' are bugfix releases.

XY may be 'alpha','alpha2','alpha3', 'beta','rc1'.

So if you see a version number 0.9.3beta, you'll know it is an almost feature complete version, third bugfix but otherwise untested (beta) release. I tend to use 'alpha' if I *KNOW* there are serious bugs in the software (even if this technically not what alpha is supposed to mean).

But everyone is free to use various numbering schemes. Odd numbers for unstable releases? Go ahead, but personally I just find that a bit odd.

If you want a simpler version number scheme, just show the build number (or version control revision number) in your software.

Re:Different people, different numbering schemes. (5, Funny)

veganboyjosh (896761) | about 5 years ago | (#28692943)

Odd numbers for unstable releases?

That you, Gene Roddenberry?

I don't know what to do about 1.10 and beyond (1)

Saint Stephen (19450) | about 5 years ago | (#28692251)

If one only increments the major number when you break backward compatibility, then you can get 1.10, 1.11, 1.12, etc. But I think that looks awful! It doesn't sort right in text anymore, and 1.01.5 isn't going to make any friends.

Re:I don't know what to do about 1.10 and beyond (1)

MightyYar (622222) | about 5 years ago | (#28692483)

It doesn't sort right in text anymore,

It sorts properly in the Mac Finder ;p

But you are right, it's a pain when you are searching an FTP site for the latest version and you basically have to scan every single file because the newest isn't automatically sorted to the top or bottom of the list.

Re:I don't know what to do about 1.10 and beyond (1)

BarryJacobsen (526926) | about 5 years ago | (#28692739)

It doesn't sort right in text anymore,

It sorts properly in the Mac Finder ;p

But you are right, it's a pain when you are searching an FTP site for the latest version and you basically have to scan every single file because the newest isn't automatically sorted to the top or bottom of the list.

Sort by date created/modified :P

0.97 0.98 0.99 ??? (1)

Rik Sweeney (471717) | about 5 years ago | (#28692255)

I remember when MAME was hovering around the 0.97 mark and the user forums were asking if this meant that in 3 version's time MAME would hit version 1.0. The answer came back as no because that would mean that it was complete and MAME is nowhere near completed. Instead it went from 0.99 to 0.100.

(That's a period denoting the end of the sentence, not part of the version number in case anyone was confused.)

Re:0.97 0.98 0.99 ??? (-1, Troll)

JobyOne (1578377) | about 5 years ago | (#28692481)

You didn't know that 10 comes after 99? You also didn't know that 1 comes after 9?

That's super saiyan mogu mogu neko mimi konichiwa counting! (aka "I'm 14 years old and a l33t MAME haxx0r" counting)

I blame Japan.

Re:0.97 0.98 0.99 ??? (1)

je ne sais quoi (987177) | about 5 years ago | (#28692639)

The worst project I know of for this is e17. It hasn't been released yet, but they started with e16 and started adding decimal places until they got to version 0.16.9999, then they skipped the 9999 and just started counting again, so what I have installed on my PC is version 0.16.9999.050 or so and then they lost track of version numbers all together and just started using svn to update everything. Now they've changed yet again and they're using snapshots based on dates, which is a little more reasonable. But then again, e17 was begun in 2000, so it's been "in development" for 9 years now and things are bound to get a little confused (even though it's been used in commercial OSes [wikipedia.org] already). It is getting done slowly, but by the time they "release" it, it's going to be so far out of date it's not even funny. They've already had to redo the default theme because it looked dated.

Re:0.97 0.98 0.99 ??? (1)

Aqualung812 (959532) | about 5 years ago | (#28692653)

That is pretty silly, IMHO. I always thought 0.99 > 0.100. If they didn't want to go to 1.0, sounds like they needed to start going .97001, .097002, etc...

Re:0.97 0.98 0.99 ??? (5, Informative)

idontgno (624372) | about 5 years ago | (#28692841)

Which points up (no pun intended) the semantic confusion of using "." ("period", "full stop") as a version component separator. Semantically, it's not a decimal radix point. Therefore, the second component of your hypothetical version is not 99/100, it's integer 99. Therefore, integer 100 is indeed > integer 99, and the "." shouldn't be pronounced as part of it.

That doesn't happen, of course; we all* say "point 99" or the like, which is exactly the same as if the "." were, in fact, a decimal point.

*Not strictly "all"; I usually say "dot" instead of "point", partly because of this confusion. This usage became mainstream with "dot Net" since the string "Net" makes no sense as a real number "r" such that 0 > r > 1.

Re:0.97 0.98 0.99 ??? (1)

Aqualung812 (959532) | about 5 years ago | (#28693007)

Now that you mention it, I DO consider 0.100.0 to be greater than 0.99.0. The extra "." relays to my brain that this isn't a decimal, so .100. > .99.
Good points!

Re:0.97 0.98 0.99 ??? (1)

maxwell demon (590494) | about 5 years ago | (#28692955)

Well, the difference is in seeing the dot as decimal point (i.e. 0.99 = 99/100, 0.100 = 1/10) vs. seeing the dot as just separating two integers (this second view is more obvious in those projects which use three numbers, like 2.11.1, where the dots cannot be mistaken as decimal point any more).

Irrational numbers (1, Interesting)

pzs (857406) | about 5 years ago | (#28692275)

The proper way to use version numbers is to continually improve the precision of an irrational number, as in Tex [wikipedia.org] .

I thought it was just me... (1)

American Expat (1393429) | about 5 years ago | (#28692281)

I've been working for ISVs for nearly 25 years, and for some reason have developed a "thing" about prime build numbers. It got to be a running gag at a couple of places I worked, to the point where at one place the buildmaster would bump the build number to the next prime number for the "gold" build.

Nice to know I'm not the only one with build number quirks..

Decimal version numbers (1)

Todd Knarr (15451) | about 5 years ago | (#28692297)

Well, decimal version numbers in their current form go all the way back at least to MS-DOS, so that would be 1982 (if not earlier). It used X.Y version numbers, eg. 2.1, 3.0, 3.1, with the now-common interpretation of the major versio number meaning significant new features were added and the minor version meaning fixes or enhancements to existing features but nothing major new or changed. I'm pretty sure the convention wasn't new with DOS, it probably goes back even further to the mainframe world.

Re:Decimal version numbers (2, Informative)

American Expat (1393429) | about 5 years ago | (#28692577)

They go back significantly farther than that. I know SPSS was using major.minor version numbers back in the 70s (maybe even to the 60s), and I'm sure they didn't invent it.

Funny story from this, is that when SPSS was introducing version 10 there was apparently some consternation about having a 2-digit major version (not sure if it was a technical or a marketing concern, but it was a Big Deal to them). The solution? SPSSX version 1.0!

Re:Decimal version numbers (1)

egcagrac0 (1410377) | about 5 years ago | (#28692765)

Apple II side had DOS 3.2 and DOS 3.3. There were huge differences (23% more disk capacity on the same media), but the user saw relatively few changes in UI (IIRC). I'd have to check my references, but I'm pretty sure that these were out by 1978.

they should be kept practical and useful (1)

FudRucker (866063) | about 5 years ago | (#28692331)

Ubuntu using the year and month for version numbers is a great idea, then at a glance you can see when the distro was released, after any application or operating system makes it to a 1.0 release it should be done this way = YY.MM

The crap that microsoft does is just exactly what i see in versions, versions like home basic, premium, ultimate just sounds like marketing cruft, when we all know the OS was originally built with ALL the features and all they did was cripple it in steps and named them as such, so in essence the "basic" should cost the most because more work went in to it to remove the features and extra testing went to to make sure it still worked good enough to market...

Re:they should be kept practical and useful (0)

Anonymous Coward | about 5 years ago | (#28692469)

The problem with Ubuntu is that some people insist on referring to codenames without appending the YY.MM part. The codenames are cute but aren't descriptive. I wish people would either say "9.04 Jaunty" instead of just "Jaunty". I'm an Ubuntu user, but I can never keep track of what version's Gutsy or Dapper or Intrepid what have you. I often have to google a codename figure out what version it refers to.

Why should it matter you may say? Well, when I edit /etc/sources.list, the repository names are codenames instead of version numbers.

Re:they should be kept practical and useful (1)

egcagrac0 (1410377) | about 5 years ago | (#28692811)

the repository names are codenames instead of version numbers.

Sounds like it's a problem with the repository maintainers, not the rest of the world.

Yes, url://repository.server/archive/09/04/ seems like a much better solution.

Re:they should be kept practical and useful (0)

Anonymous Coward | about 5 years ago | (#28692547)

Ubuntu using the year and month for version numbers is a great idea, then at a glance you can see when the distro was released, after any application or operating system makes it to a 1.0 release it should be done this way = YY.MM

ATI's Catalyst drivers are similar, although I've seen them manage to slip in a YY.13 at least once.

Re:they should be kept practical and useful (0)

Anonymous Coward | about 5 years ago | (#28692581)

when we all know the OS was originally built with ALL the features and all they did was cripple it in steps and named them as such, so in essence the "basic" should cost the most because more work went in to it to remove the features and extra testing went to to make sure it still worked good enough to market...

Welcome to 1776 [wikipedia.org] . Prices are based on what the market will bear; any relationships to the original cost of work and materials is incidental.

Re:they should be kept practical and useful (1)

Anonymous Coward | about 5 years ago | (#28692643)

No! Please do not use YY ever. YYYY is the only proper format (at least until 9999). Remind the "Year-2000-problem", for instance!
(By the way: I wish everyone would use ISO-8601 as their date format.)

Re:they should be kept practical and useful (1)

FudRucker (866063) | about 5 years ago | (#28692711)

we have 1000 years until that blunder comes back...

Re:they should be kept practical and useful (1)

Darkness404 (1287218) | about 5 years ago | (#28692809)

Yes, because I'm sure we will all end up using Ubuntu a thousand years into the future.

Re:they should be kept practical and useful (1)

El_Muerte_TDS (592157) | about 5 years ago | (#28692683)

YY.MM might work for software bundles, like operating systems. But version numbers are of great importance for internal use, thus:

major.minor.micro.somethingForDevs

major -> major + 1 = major products differences... a lot of new stuff... don't blindly install this stuff (or, this requires clients to renew their license)
minor -> minor + 1 = might need configuration changes, 3rd party software linking to this might break
micro -> micro + 1 = just bugfixes, everything should still work as before (without the bug of course)

somethingForTheDevs = build number, revision number, build date; something you can use as internal identifier

Re:they should be kept practical and useful (1)

FudRucker (866063) | about 5 years ago | (#28692751)

i understand it, it is more than an average user needs, maybe put that info in to the "Help > About" dialog box

Don't forget TIFF (5, Interesting)

Anonymous Coward | about 5 years ago | (#28692349)

All TIFF files have a version number of 42, chosen, according to the developer docs, for that number's deep philosophical significance.

Software version vs. sequels (1)

192939495969798999 (58312) | about 5 years ago | (#28692417)

Software versioning gets really confusing with game programming, specifically versions vs. sequels. Zelda II and Mario II are sequels of the original - very different games. However, Quake 3 is more like a version difference from Quake 2, even though technically it's a "sequel". Windows 7 is definitely a version difference even though it wants to be a sequel. The difference? Because they are different, people understand why they should pay for sequels, while they want the less-different version upgrades for less/free.

Re:Software version vs. sequels (2, Insightful)

oodaloop (1229816) | about 5 years ago | (#28692987)

Forget version numbers. How did you pick that user name?

os x (4, Funny)

psyklopz (412711) | about 5 years ago | (#28692445)

The article mentions OS X and the fact that they will be running out of cat names pretty soon.

My prediction: as soon as they run out of cat names, they'll go to 'OS 11'

Steve Jobs will market it by saying 'this one goes to eleven... It's one better, isn't it?'

Re:os x (1)

egcagrac0 (1410377) | about 5 years ago | (#28692837)

Waiting for OS X Tawny Scrawny Lion.

Re:os x (3, Informative)

je ne sais quoi (987177) | about 5 years ago | (#28692863)

Oh, I don't know, there's lots of cat species [wikipedia.org] . I myself an breathlessly awaiting Mac OS X version Iberian Lynx, which will be one better than Asiatic Lion. Perhaps that doesn't have quite the same ring to it though. They could also do extinct species, like sabertooth, which would be a decent name.

In all honesty, I do wonder why they haven't done a Lion version yet.

Whatever happened to... (0)

Anonymous Coward | about 5 years ago | (#28692473)

XBox 2 through 359?
Nintendo 2 through 63?
Windows 99 through 1999?
Kenny A through F?

Clipper Summer 87 (1)

coolmoose25 (1057210) | about 5 years ago | (#28692477)

Nothing will beat the Clipper version system... Everytime I used the Summer 87 edition, my mind would conjure up images of a schooner slicing through the chop in Nantucket Sound, with a bikini clad blonde bombshell sunning herself on the bow... ahhhhh...

And then someone who hadn't bathed in 3 or 4 days would lean over me at my IBM PC XT computer and ask me for help in compressing an index. Daydream explodes.

Three Stelps (1)

JobyOne (1578377) | about 5 years ago | (#28692491)

Step 1: v0.1 Beta
Step 2: ???
Step 3: PROFIT!

Personally just go with a year.month.day (0)

Anonymous Coward | about 5 years ago | (#28692503)

I prefer to just go with a year.mo.da system. Mark it as beta if needed. Its very easy to see when an application got updated or released then or to see if it needs updating and it makes sense to a layperson

0.9 to 0.10 (0)

Anonymous Coward | about 5 years ago | (#28692511)

Version numbers like this ... -> 0.8 -> 0.9 -> 0.10 -> ... are the worst bunch of them all.

Those who number their software like this might argue that the numbers are mutually exclusive, "that's a major number, that's a minor number, that's a whatever the hell number". Look, I see numbers and I see decimal points, so I expect them to follow some kind of order. And 0.10 is not greater than 0.9. I don't want to read a paragraph long explanation or justification about your version numbers. It's a fucking version number. There should be no need to read a man page to understand them.

If you're going to use decimal or decimal-like notation, the next version should be 1.0. If it's not ready for a "1.0 release", then just tack on another number 0.91 or 0.9.1. Is that too much? Seriously, is that so hard? Why cause unnecessary confusion among users by going to 0.10?

Re:0.9 to 0.10 (1)

w3woody (44457) | about 5 years ago | (#28692753)

Too bad you posted anonymously. Otherwise I could have added special case code to my version formatter to separate version numbers with "#", just so you won't get confused when the version of my software goes from 1#9 to 1#10.

Re:0.9 to 0.10 (1)

Ragzouken (943900) | about 5 years ago | (#28692875)

Most people are able to read a sentence such as 'The full stop delimits different version numbers rather than acting as a decimal point.' and understand completely.

Re:0.9 to 0.10 (0)

Anonymous Coward | about 5 years ago | (#28693037)

But they're not decimal numbers, they're version numbers. They just happen to use the same delimiter as a decimal number (in the Anglo Saxon world, anyway). The concept of multipart version numbers 1.2.3.4 wouldn't make any sense if they were decimals. One could argue that using dots as the delimiter is the cause of the confusion, but then IPv4 also uses dots and no-one seems to get confused with them.

Oracle (2, Interesting)

Major Blud (789630) | about 5 years ago | (#28692529)

My favorite has always been Oracle. The first commercial release of their flagship DB was version 2.0. There wasn't a version 1 because they wanted the product to sound more mature.

Re:Oracle (1)

tb3 (313150) | about 5 years ago | (#28692807)

Watcom was even better. The first release of their C/C++ compiler was Watcom C 10.0. They picked 10 because it was bigger than any competitor's version number at the time.

Re:Oracle (1)

kigrwik (462930) | about 5 years ago | (#28692835)

Don't let the fact that DB2 is an IBM product restrain you from mocking Oracle.

Version numbers is about communication... (1)

Kjella (173770) | about 5 years ago | (#28692535)

Version numbers is about communication and it doesn't matter one bit how fancy your system is if it's not communicated and understood by the intended recipiants. That can be things like API compatibility, binary compatibility, scope of UI/feature/fix changes or just the time of year (Ubuntu version numbers, anyone?) - there's really only one cardinal sin, and that's releasing something with an version number that doesn't correspond to the expectations. I don't mean version number nazis that insist you can't have an RC if you know it'll need another patch, but real mismatches that mislead users. Everything else is either bonus or useless fluff.

Missed FOSS forks as abstract versioning (1)

jeffliott (1558799) | about 5 years ago | (#28692551)

The article mentions bits about the lack of marketing pressure in the FOSS world keep the version numbers sane. Since many FOSS programs have often been forked for direction/feature/standards reasons, and this is the same kinds of changes meriting new version identifiers in commercial software, perhaps that premise is flawed. Sure, those projects might make significant changes and increment the major version number, but the ability to fork and work on the features and changes you want is the source of the wonderfully full FOSS ecosystem. Commercial software companies might learn a thing or two from this. There are tons of forked projects where the original and many of the forked versions are still being used. Not sure how to monetize that process though.

Word for Windows version numbers (2, Interesting)

maxwell demon (590494) | about 5 years ago | (#28692553)

I'm not sure if the step in Word for Windows version numbers really was because of WordPerfect. Prior to 6.0, Microsoft had two independent Word release series: The original Word running on DOS, which already had reached version 5, and Word for Windows, which only had reached version 2. With Word 6, the DOS and Windows version numbers got synchronized; since 5 was the latest DOS version number, it made sense to use 6 next.

Missed (-1, Redundant)

Relic of the Future (118669) | about 5 years ago | (#28692585)

No mention of TeX version numbering? (Asymptotically approaching pi?)

No mention of the Marathon series using the largest "version bump" ever? (From Marathon 2 to Marathon Infinity?)

And this probably isn't true 100% of the time, but most of the time, those aren't decimal points; it's not three-point-one-one, it's three-point-eleven; 3.2 is before 3.11, not after. And that's the only way multi-point versioning makes any sense, like 2.6.26.

Lame article.

Re:Missed (0)

Anonymous Coward | about 5 years ago | (#28692805)

No mention of TeX version numbering? (Asymptotically approaching pi?) RTFA

Re:Missed (1)

kigrwik (462930) | about 5 years ago | (#28692921)

No mention of TeX version numbering? (Asymptotically approaching pi?)

Err.... You *did* realize there were three pages in the article ? TeX is at the bottom of page 2.

Read it (2, Funny)

Vollernurd (232458) | about 5 years ago | (#28692607)

Well, that's 4 minutes of my life I'll never get back. Chrissssst... I'm a geek and even I thought that was dull.

It's all about compatibility (0)

Anonymous Coward | about 5 years ago | (#28692623)

I'm used to the major.minor.patchlevel scheme. But the choice of what's patch/major/minor shouldn't be arbitrary.

Patchlevel is just for bugfixes. So for libraries, they should just be able to drop the new one in,
or relink (static libs). For programs, the user shouldn't see any difference (besides missing bugs,
or better performance).

A Minor version bump implies that there's a new feature. So for libs, someone using this feature
can't make do with an older Minor version. Otherwise, this is a drop-in replacement, just like
patchlevel

A Major version bump implies binary incompatibility. For a library, this implies that your users
need to re-compile against it, and possibly change the way they call it. For a program, the network
and disk storage formats have changed, and they may not be able use it with data from older versions.

Good timing (1)

SCHecklerX (229973) | about 5 years ago | (#28692633)

Just this past week, in order to maintain some rpm repositories from multiple sources, I needed to discard versions of a package older than the most recent. What a pain (think about it ... mixed alphanumeric, usually numeric, but needing to sort numeric on arbitrary decimal and - boundaries).

Luckily I discovered the Sort::Version perl module. *whew*!

Another unusual case: 2 numbers for 1 version (2, Informative)

maxwell demon (590494) | about 5 years ago | (#28692715)

Another interesting version number case occured during the gcc/egcs split: The egcs releases had two version numbers for the same release: One starting with 1.0.0, numbering the egcs releases, and the other one, IIRC starting with 2.91.0, giving a "gcc version number" to indicate that it was still considered to belong into the gcc family. After egcs officially bacame gcc again, the first releases had the form 2.95.x before the 3.0.0 release came out (starting from which the numbering followed the normal schemes again).

As an additional twist, before it was decided to name the next release 3.0.0, the internal development code had the version 2.96.0, which also was used for a Red Hat gcc release. There never was an official gcc-2.96 release, though.

Android's Alphabetical Desserts (1)

Kelson (129150) | about 5 years ago | (#28692719)

I'm not sure what the previous versions were called, but Google's Android OS recently released Cupcake. Next up [gizmodo.com] is apparently Donut, then Eclair, then Flan.

binutils (1)

KuNgFo0 (519426) | about 5 years ago | (#28692745)

I think one of my favorites has always been the common "binutils" package in Linux. Looks like the last release was binutils-2.19.51.0.11 I don't remember ever seeing anything but a 0 in that 4th number, but it's always been there.

XP and Pentium (2, Interesting)

Trevin (570491) | about 5 years ago | (#28692767)

One reason marketers have given products names instead of numbers, which isn't mentioned in the article, is that courts have ruled that companies can't trademark numbers (though I can't find a source reference).

I grew up with (4, Informative)

kenp2002 (545495) | about 5 years ago | (#28692849)

A.B.C.D

A: Major Release, violates backwards compatability

B: Feature Add Increment. Indicates new features from prior release

C: Bug Fix Release Increment.

D: Build Identifier usually YEARMONTHDATE

e.g.
1.1.0.080215
1.2.12.090714 (12th minor update to feature set 2 for release 1 built on July 14th 2009)
1.3.1.091224 (First minor update for feature set 3 built on Dec 24th 2009.)

Since most software tends to follow quarterly or monthly release schedules you rarely get more then 18 minor revisions if they are building weekly on a quarterly schedule or more then 4 on a monthly schedule.

Re:I grew up with (2, Informative)

codematic (1023035) | about 5 years ago | (#28692967)

The scheme makes sense... but i have personally had knock-down drag out fights over this and whats picked is something that has no structure, and no mathematical attributes whatsoever. Managements picks something that conveys little information to software, and less to the customer, then blames the developers when its shown to be useless... Thats modern day software development...

What about Oracle??? (1)

HockeyPuck (141947) | about 5 years ago | (#28692901)

How can you omit Oracle? The first version was 2.0.

how about backing up? (1)

hurfy (735314) | about 5 years ago | (#28692919)

Has anyone seen another program admit they screwed up and go backwards?

I purchased the old shareware database program PC-File (and still use it!) Not sure of the 1st versions, i don't think it had a number. 2nd one i got was version 5 and was a good program that could have used a few tweaks but was fast and simple. Version 6 changed drasticly and many functions got slow as it tried to go to a pretty UI. Version 7 tried to fix version 7 but was still sluggish. The next version released was.....version 5.5! They tried to fix up the old one by adding a couple needed features but missed a couple others. I think he sold out or moved on at that point and it faded away.

It was simple and fast enough that i used it for looking up names and other info from a barcode in real time into a database as fast as i could scan in labels on a 386 :) Ok, i did need 10M of ram so it could use a ramdisk since the HD couldn't keep up.

Didn't see him include 5,6,7,5.5 in the article :)

Explain Actiontec's (Verizon FIOS) version system (0)

Anonymous Coward | about 5 years ago | (#28692927)

I dare anyone to deconstruct the Actiontec MI424WR router versioning scheme:

Currently firmware version is 4.0.16.1.56.0.10.11.6

http://opensource.actiontec.com/

Simple rules to remember (0)

Anonymous Coward | about 5 years ago | (#28692973)

Version 1 - Buggy as all heck - maybe 20% of users get it working.
Version 2 - Major bugs fixed - leading edge users adopt and love.
Version 3 - The sweet spot
Version 4 - Major enhancements - most don't work. Core functionality still works
Version 5 and above - Bloatware

My experience (1)

istartedi (132515) | about 5 years ago | (#28692977)

For my own stuff at one point, I automated the version numbering based on dates. I would set the first year as the "epoch" for 1.0 and munge the day into the minor number. This was before I started working in an environment with a revision control system.

Later, I would have my programs output their revision numbers. (There are Subversion hacks combined with your makefiles that make this fairly easy).

Of course, in the corporate world there is always some agreed-upon version number that has nothing to do with the svnversion of your component. In my code, for an application named foo, I'd have the svnversion defined as FOO_SVN_VERSION and the other number would be FOO_MARKETING_VERSION.

If you ran foo --help, you got something lik:

Foo version 2.1, (C) 2007 Fubar Company. Revision 2345.

Doom II Version 1.666 (4, Interesting)

linebackn (131821) | about 5 years ago | (#28692983)

One of my favorite version numbers was the version of the first Doom II executable (which used a different version number than the game itself as it shared the exact same executable with Doom I, Doom I shareware, and Doom II). The initial release of Doom II was "Doom II Version 1.666"".

We're not entirely innocent. (1)

Opportunist (166417) | about 5 years ago | (#28692993)

"Never trust/buy a x.0 version"
Sounds familiar? Of course. And with good reason, a .0 version more often than not was a "it compiles, ship it" version. If you were smart, you waited for .2. Kinda like you wait for SP2 today.

What did companies do? They offered a .0 version for a week or two, immediately followed by the "final final" .2 version. I wouldn't be surprised if we could soon only buy SP2 versions of some new OS.

The first signs are already there. Or did you get a WinXP version that didn't include a SP1?

In contrast, you'll be hard pressed to find anything (but core parts) for Linux that isn't available in a "0.x" version. A 1.0 for Linux is some kind of event, usually coming long, long after it has become stable and useable. IMO, when judging Linux programs, shift that dot to the right by a digit and you're where you would be in commercial software.

Winamp (1)

ghee22 (781277) | about 5 years ago | (#28692997)

My favorite version # memory is Winamp 5. The best of Winamp 2 + Winamp 3 combined.

Web 2.0? (1)

maudface (1313935) | about 5 years ago | (#28693013)

I'm both shocked and appalled that the article made no mention of Web 2.0 as the absolute *worst* abuse of version numbers.

Oh well.

Ruby programmers seem not to get it (1)

superdana (1211758) | about 5 years ago | (#28693025)

This is one of the most irritating things about working in Ruby. Most of the people writing gems don't seem to have ever learned version numbering conventions, so it's not at all uncommon to have a point release (e.g., 1.1.2 -> 1.1.3) that breaks API compatibility. The Merb folks have been the worst offenders, in my experience.
The most irritating thing about this is that the documentation for the gem system has an entire section devoted to version numbers. It very clearly explains the major/minor/bug fix convention. Evidently nobody has read it.

StarOffice vs OpenOffice.org (1)

Bigby (659157) | about 5 years ago | (#28693033)

The author of the article states that he doesn't know why we are on StarOffice 9 yet OpenOffice 3, when they are the same suite. Let me help.

StarDivision created StarOffice. They eventually sold StarOffice to Sun. When Sun released StarOffice 5.2, they open sourced it. This created OpenOffice. OpenOffice then had trademark issues and changed it's name to OpenOffice.org.

OOo released 1. Sun rebranded it as StarOffice 6.
OOo released 1.1. Sun rebranded it as StarOffice 7.
OOo released 2. Sun rebranded it as StarOffice 8.
OOo released 3. Sun rebranded it as StarOffice 9.

By "rebranded", I mean they added some stuff with addition to rebranding.

This is similar to Apache Tomcat and IBM WebSphere and JBoss, except in this case the rebranding adds far more to the base product.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...