Saturday, February 19, 2011

The Version Number Game

We all play it. Every hacker, code monkey, and developer that produces a piece of software - The Version Number Game. Version numbers are suppose to represent the progress of a piece of software makes over time. The problem with this system is that there is no uniformly accepted standard for numbering the version of your application. From a certain perspective, I can understand this. Many pieces of software are different, so to try and define one standard for numbering all of them is a bit of an unrealistic task.

The problem is that even applications of the same function do not follow similar version number releases. If you have been around the Linux world for more than a minute then you have heard of both Ubuntu and Debian Linux. Debian first released almost 18 years ago and they just celebrated their sixth stable release. Ubuntu on the other hand is preparing for their version "11.04" release in a couple months after having existed for not even seven years.

If you have never touched Linux before then two FOS applications I am sure most of you are familiar with are Mozilla's Firefox and Google's Chrome. These are two very popular webrowsers, that follow two very different version cycle releases. Firefox was initially released in the fall of 2004 and nearly seven years later they are on the verge of their fourth release. Chrome on the other hand has been on the market for not even three years and they are set to release versions ten and eleven by the end of the year.

Some developers realize that this is very much a game and they choose not to play it. The Debian team does not plan on artificially inflating their number of versions any time soon (at least as far as we know). Mozilla on the other hand seems to be caving to the pressure, they recently announced that they plan to release Firefox versions 4, 5, 6, and 7 by the end of 2011. Thats right, in the next ten months Mozilla plans to release more versions of Firefox than they have in the last six years. Personally I feel this is very unnecessary, Mozilla's past release cycle has been plenty fine and meaningful - it has accurately represented the progress of the browser.

What do you think of the version number game all our developers are playing? Is it necessary to produce 3+ "versions" of your piece of software per-year just to stay noticed?

~Jeff Hoogland


  1. I think that some, but not all, of it is mostly empty hype. It's like college textbooks that release a new version every one or two years, where the only changes are nominal, at best, and mostly consist of shuffling around a few sidebars in the text and changing the color of the highlighted text.

    I think Debian has the right idea, release a new version when they think that it's good and ready and they have tested the snot out of it for stability. Ubuntu... well.... we all remember one or two Ubuntu releases that weren't ready for prime time. A Debian release is a noteworthy event, almost as notable as a Nethack release!

    I generally try to ignore the hype and try to pay attention only to what functionality I see.

  2. I really don't understand why people whine so much about software numbering.

    Ubuntu 11.04 doesn't mean that this is the 11th release, means that was launched in 2011. Windows 95 doesn't mean that it's the 95th release.

    Chrome it's already in version 11. But what's wrong with that? Does it break your system? Does it slowdown webpages? In the time that Mozilla tries to launch Firefox 4, Google has already improved and implemented much more features and bugfixs in its browser. That's what matter.

  3. I recently wrote a <a href=">blog post</a> about this. The Mozilla Firefox numbering change is more, in my opinion, a reflection of a shift towards a philosophy of cutting down the number of new features in major releases but putting out those major releases more often. That said, it is also partly a perception issue: with Chromium 10 scheduled to come out before Mozilla Firefox 4, people perceive the latter to be less advanced/mature compared to the former. Do note, though, that even projects that don't spend so much time in the public eye fall prey to this too. Slackware, which isn't by any means a newbie-friendly Linux distribution, jumped versions from 4 to 7 because users perceived it to be falling behind its competition.
    a Linux Mint user since 2009 May 1

  4. I think the only metric for version numbers would have to be based on some quantifiable measure of software maturity. Wouldn't it be interesting if a program's version number couldn't advance until the number of known bugs was <1 per 1,000 lines?

    Feature addition would slow to a crawl

  5. This is not new. Remember Microsoft, inflating their Office version number to match those of its competitors? Then abandoning them completely to use release years instead "like cars" as Bill Gates put it? Then abandoning that scheme silently as well for the likes of "XP", "Vista"? And now returning to "7" and "8". All geeks know that INSIDE version numbers are still alive in MS products. Versions have become a marketing tool instead of identifying a program. Fortunately, most FOSS programs do not follow that scheme - except for the ones you stated. Maybe it is a trend, KDE coming up with version 5, 6, 7 and 8 this year (not another 4, please not) and Gnome is jumping to 4 as well. I think you should only change a version number if the current scheme doesn't fit anymore. I know I did once, wanting to get rid of "R1", "R2" extensions, but for all means and purposes my software has grown from version 3.10.0 in 1994 to version 3.61.1 in 2011. ;-)

  6. Software engineering must act against this phenomenon. This Engineering has enough autonomy to define a way to name a application version. Or what?

  7. Ubuntu doesn't have version numbers.
    They have version release dates.

    The month and year determain its version numbers.

  8. Personally, I don't have a problem with chrome's insanely fast release number schematic. It just is a number per update. Nothing wrong with that.