The Amazing World of Software Version Numbers
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?)"
What is this standard you are referring to?
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)
Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
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.
My webcomic
Better late than never!
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.
All TIFF files have a version number of 42, chosen, according to the developer docs, for that number's deep philosophical significance.
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?'
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.
If you post as Anonymous Coward, don't expect a reply.
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.
The Tao of math: The numbers you can count are not the real numbers.
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.
Smokey, this is not 'Nam, this is bowling. There are rules.
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.
The Tao of math: The numbers you can count are not the real numbers.
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).
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.
Welcome to the Panopticon. Used to be a prison, now it's your home.
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.
-=[ Who Is John Galt? ]=-
Odd numbers for unstable releases?
That you, Gene Roddenberry?
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"".
Forget version numbers. How did you pick that user name?
Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
...personal encounter with a second decimal point in a version number. Although I was just a high school kid at the time I can still remember all the geeks on the other side of the Mac/PC divide claiming it was aberrant and wrong.
Thus my general disrespect for proponents of the Windows operating system was born.
That's actually not rare at all. For example Firefox went (briefly) to 0.10 after the 0.9 series. It merely depends on whether you think of the version as a decimal number with a fraction or as two (or more) numbers, separated by a dot.
The article states,
Did Windows 95 start the idea of using years instead of version numbers?
Nope -- it's a far older conceit than that. The earliest example I'm aware of is Fortran 66 ...
I believe Algol 60 predated that by a good 6 years, and Algol 58 by an additional two. While Algol 58 didn't see as wide usage, Algol 60 was, to many, the definitive version of that language.
See http://en.wikipedia.org/wiki/ALGOL
Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
Apple will have even more names when they move into LOLCAT space: Serious Cat, Ceiling Cat, Basement Cat, Itty Bitty Kitty Commiteh, and Monorail Cat.
The possibilities are endless!
I love the sound of distortion in the morning -- webcommando
The article asks "has anyone ever been brave enough to sell a version 13 of anything?"
There was AutoCAD Release 13 back in the day.
I release several games as custom maps in Starcraft. Many of them are refinements of earlier versions made by others. And all of them are released unprotected so that others may add their own refinements.
Version numbers get messy. I typically go to the next major number if I'm doing a serious overhaul of my own or somebody else's map. Then I increment the minor numbers for bug fixes, balance changes, and minor enhancements.
But then somebody else comes along, makes a minor (and often terrible) change and releases it as the next major version. Or they make major changes and release it as the next minor version. Then when I make a new version, it either clashes with those other versions or looks older than the versions released with big jumps.
I've tried adding descriptor names to my versions, a la Vista. So I have "Phantom BGH Gold 1.0" as my refinement of "Phantom BGH 2.4", but most people don't seem to get that. When my updates landed me at "Phantom BGH Gold 3.0" people at least paid attention that it might be newer, but they still complained that it was different than "Phantom BGH 2.4".
I also tried adding "Classic" to a game version which was a totally rewritten implementation of a game type with other versions in the 3.0 to 9.0 range. I intended the "Classic" to signify I was focusing on the core ideas of the game type, but so many people thought it meant "old". As if the first version ever released of that map was labeled "Classic", and a label of "New" means new forever.
TheNevermind
I realize it's personal preference, but it irks me seeing applications with a version number less than 1. Yeah, it's fine to say "it's version 0.5 because it doesn't have all the features", but it's never going to have all the features you want or planned.
The way I see it, by definition, the first time you hit Compile, you're creating "The First Version" - version 1.0. As far as I'm concerned, it starts at 1.0, not 0.1 or 0.0.0.1 or whatever else. If it takes all the way to version 2.0 to get "all the features" you originally planned or wanted, fine, the application is now at version 2, why is that a problem? It seems like a lot of applications, especially in the open source world, insist on always having a version number less than one. A lot of times when I see that I feel that if the developer isn't confident enough to call their application "The First Version", there's no way I'm going to use it. That's probably putting more weight on version numbers than is intended, but version numbers are all about perception anyway (just ask Netscape 5).
And no, zero-based arrays are no excuse for now starting every numbering sequence with a zero. The word "first" is the ordinal form of the number one, not zero. By definition then, "The First Version" is version 1.
"Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
Engineers usually have a legit reason to brand a public version number... the next release, and the number indicates the level of importance. So far, so good.
But then marketing and politics get into play.. and if you're in the business, these are good things to know. Sometimes it's just marketing... the DECT cordless phone standard somehow mutated version 1.6 into version 6... I guess that sounds more grown up in the marketplace. But it's also the first time they were using "DECT" as a buzzword in their marketing. No harm, no foul.
Other times, it's keeping up with the joneses. Some have a method to their madness.. I use lots of Sony Media Software tools... you pay once for any major version, all of the minor versions in that release are free updates.. not just bug fixes, sometimes including new features. New one comes out, you can decide to upgrade or not... if you skip a version, you still get an upgrade price on the one after that. I'm really happy with the way these guys do business.
At other times, something as stupid as a version number can become a billion-dollar weapon. This only happens when idiots are involved in contract law, I think, but it's happened. My classic example: MacOS and the open Mac platform. I was designing this kind of hardware in 1996-1997, the PReP, I mean CHRP, er, umm, I mean PPCP standard for Mac compatibility. This was largely at the urging of Apple's CHRP (um.. whatever) group, whom we (PIOS Computer AG, Hildesheim, Germany) met with in January of '97.
So, like Power Computing, UMAX, IBM, Motorola, and others, we're off making a standard PowerPC platform machine. Maybe it should have been clear, after meeting at Apple and seeing that a Mot Starmax they had on-hand was the fastest Mac every recorded... at this side of an Amiga 3000 running a Mac emulator (a previous project of mine... the A3K, not the Mac emulator). Jobsie wouldn't like this, would he?
So Jobs comes back, and like magic, at the Mac Conference in September, they announce MacOS 8... which is MacOS 7.6.something with a new name. And guess what... Motorola and IBM, the two big, old-school, real serious companies with more lawyers than PIOS Computer had employees (by some orders of magnitude, I suspect) had left a huge, ugly, gaping hole in the contracts they negotiated with Apple for MacOS... Apple gets to renegotiate the contract, completely and totally, on major revisions of the OS. But they get to decide the definiton of a major release of the OS!
They didn't really cancel MacOS licensing then.. I don't think even IBM and Motorola were stupid enough to have allowed that. But it was only a small functional difference... Apple was going to licence MacOS based on the CPU in the box.. the faster, the more expensive. My little startup had produced the first full systems shipping at 300MHz (there may have been "accelerator boards" before then, but we integrated the system... we bought motherboards from UMAX and designed our own CPU cards)... that would have been something like $500 per MacOS version to license, despite the fact you could buy it off-the-shelf for like $75.
I think this is also a good lesson for any engineer allowing lawyers to do things that have major impact on their future business course. Nothing I could have done about this, but after losing something like $100 million on the while Mac Clone thing, one would hope Motorola learned that hard-bought lesson. I do note they have "literally hundreds" of engineers working on Android-based cell phone stuff. Yeah, that ought to be a bit safer...
-Dave Haynie
Oddly enough, the Dewey Decimal System is at v22, no decimal.
Set your phasers on "funky"!
No, there was a Windows NT 4.0, and it wasn't just in name... it had some major architectural changes over NT 3.5.
After that, brother, I'm with you. Windows 2000 was NT 4.something with tweaks to match the look and feel of Windows 98SE/ME/MOUSE/whatever. That wasn't a bad thing... it was as stable, give or take, as NT 4... I just had a problem with having to pay for a service pack. Maybe this is Windows 5.. or 4.something in actual fact?
XP didn't at the time seem like much more than Win2K with additional surface tweaks. I skipped that for a few years, but eventually go sucked in based on needed add-ons.. new apps used new API frameworks only released for XP. And by then, it was stable, too.
Vista.. better forgotten. They changes the look of it again.. I'm not convinced there's all that much new under the hood, much less anything good. They sure seem to change a bunch of code, for these releases or SPs or whatver.. still doesn't explain why the Windows shell sucks so badly.. my Amiga 3000 is faster at desktop disc navigation. Hell, AmigaOS running in emulation over top of Windows is faster at this stuff. So is Linux, of course. I think maybe I'd have more respect for Microsoft if they stopped fixing the look of the thing for one and instead tried to make it more usable. I mean, I'm on a four-core Q6600 CPU with 4GB DDR2 RAM, 3TB in the box, 6TB on USB, Gigabit ethernet to the house... thousands of times faster than that Amiga (also on the same network).... why should it ever, for any possible reason, take 30-60 seconds for me to see "My Computer" in the graphical shell? That's not hardware performance, that's retarded OS code. I'm sure it's the echo of horrible Windows 3.1 design decisions that oddly more modern OSs like AmigaOS (essentially stopped in 1994) and Linux (a hodge-podge of good ideas from the 70s and 80s) didn't screw up from the start.
Well, with all the various and sundry new APIs, why not fix the fundamentals? There's this programming construct, called a "thread". No, you didn't have one in Windows in the 80s, but they do exist, and there's no reason to run everything through a single per task window event queue anymore, either. Machines have had real asynchronous behavior for decades, now.
Yeah, I know this isn't the place... but sometimes, you just have to use Windows. A version that didn't suck in such fundamental ways would actually earn that (N+1) designation.
-Dave Haynie
Gold, Platinum, Platinum Plus were all substitutes for proper versioning in the 1980s and probably 1990s. This is parodied by many a perl script,
$ua->agent("Schmozilla/v9.14 Platinum"); # give it time, it'll get there
This was not as arbitrary as one might think. Toward the end of NS4's actual development cycle, there was an attempt to wring another major version out of that codebase, and it was called Mozilla 5. Eventually it was abandoned because the new NGLayout engine (now known as Gecko) was much better than the clunky old Mosaic-derived codebase. The NG stuff became the basis for Netscape versions 6 through 8, the Mozilla Suite, Firefox, Thunderbird, and lots of other things.
I know there are some Netscape/Mozilla folks around here who could correct/expand that story.
Slackware Linux skipped from 4.0 to 7.0, because they wanted number parity with RedHat and other popular distros.
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
Apple's recommendations from the classic Mac OS days (as explained in Technote OV 12 -- Version Territory, now #1132) were what I grew up with.
* First released version: 1.0
* First revision: 1.1
* First bug fix to the first revision: 1.1.1
* First major revision or rewrite: 2.0
The important part of version numbers is comparing them, and that's another place where Apple's classic metadata resource framework was ahead of its time.
Years later Apple chucked many of these recommendations with QuickTime/iTunes version inflation. But it's nice to see things have stabilized somewhat in that regard. QT7 and iTunes8 have had lots of revs.
Hire a Linux system administrator, systems engineer,
as a business-conscious engineer, i'm well aware of the business/marketing reasons for wanting to tweak or set the version numbers. in the commercial world, sadly, these things do actually have impact, so i'm willing to trust people with more experience than me in such psychological fields to have their input. what kills me is when they don't realize that there's actually valid technical reasons for version identifiers, too.
.0 releases". so then it became "er, make it 3.0, 3.1, 4.0, 5.0, 5.1....". the numbers got more divorced from any technical input. but at this point, marketing had already started printing literature with version numbers in it, and promising clients "3.2" on a given date, and so on.
at my last company, i was part of the new R&D department intended to make us no longer reliant on 3rd party contractors and consultants (which had been going poorly for us). we had multiple product lines with no coherence between any names and numbers. we had a product retroactively named Phase 2, an unrelated product retroactively named Phase 3, and its successor named Phase 3 Version 3, all with what amounted to point releases, without any identified version numbers or names. it was often just difficult to tell what we were talking about.
so when we started working on our own stuff, we did better. we went "major.minor (build)". the head of marketing made a compelling case for being able to decide what was "major" and what was "minor" as far as our clients were concerned, and we thought that was fine. when we were on, say, version 2, we'd have a roadmap for the next several feature/fix packages and say "we think this bundle is version 2.1, this next one is 3.0, then 3.1, 3.2, 4.0". we went 2-5 feature/fix bundles into the future. marketing would come back and say something like "we really need a major-number release earlier than some trade show; make that 3.1, 4.0, and 4.1". some of the engineers were unhappy with this, but i think that's mostly because they discount the validity of marketing and psychology in commercial enterprises generally. in reality, it worked fine.
for about 4 months. then the marketing guys decided to start changing things. frequently. they'd discover some other show they needed to get to, or decide one was less important, or a customer would tell them (stupidly) "we're going to wait for the next major version" or "we don't trust
the biggest problem for engineering was that, again, it was hard to know what we're talking about. when we met to discuss the feature set to put in 3.2, or the planning for 4.0, which 3.2 was that? no good. so we gave up, told marketing that they could simply have the version number all to themselves, and we came up with a unique identifier series to use ourselves: each feature/fix bundle got a volcano name. we could talk about the features in Koko, or decide Krakatoa was too big and break it into Deccan Traps and Viti. we got everyone - including the head of marketing and the CEO - to agree that these were internal-only, engineering-defined designations for feature sets, not tied to published version numbers or whatnot. marketing got nice numbers to show clients, we got reliable, unambiguous identifiers. worked great.
for a little under two years. then we had a review release for the "Kick 'em Jenny" release, where the head of marketing (yes, same one) "asked" us to change the name. R&D had been using it for about six months, so this was reintroducing the same problem we'd invented them to fight off, so, as the engineering manager on the project, i wasn't happy to see this happening, and asked why.
"well," he says, "we can't very well tell that to clients."
"er, right. that's half the point. these are engineering names, remember?" i responded.
"yes, well, the clients like to know the names. we've been telling them all the earlier ones."
(elided arguing and frustration on all sides)
"okay, okay." i said. "a month or two ago, actually, they discovered a near neighbor to Ki
i speak for myself and those who like what i say.
A.B.C.D
A: Major Release, really freaking hard. Will probably deprive you of sleep for a day or two. Start with backups, and test the backups before you bother.
B: Minor Release. Probably will not hork your computer, but will randomly do so.
C: Some number that I pretty much ignore.
D: LOL Wut?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Oldest version numbers:
Linear A: Linear A is one of two linear scripts used in ancient Crete before Mycenaean Greek Linear B... Linear A seems to have been used as a complete syllabary around 1900 - 1800 BC,
Linear B: Linear B is a script that was used for writing Mycenaean Greek, an early form of Greek. It predated the Greek alphabet by several centuries (ca. 13th but perhaps as early as late 15th century BC).
Linear C: (Redirected from Linear C [Already the marketers were messing with the version numbers!]) The Cypro-Minoan syllabary (abbreviated CM) is an undeciphered syllabic script used on the island of Cyprus during the Late Bronze Age (ca. 1550-1050 BC).
Beat that!
Can you imagine in 1800 BC how much of a pain the upgrade cycle must have been when everyone had to update their clay tablets?
It isn't a proper version number. Many in between has been skipped, like going from 290 to 330.