Names or numbers: pick one

Brief rant: I am getting heartily sick of the now nearly universal practice of giving operating-system releases both names and numbers, then using either at random.  Here’s an example of the kind of thing I mean: I want to download the Calibre e-Book manager for my MacBook, but the download page says “calibre works on OS X Leopard and higher”.   But the “About This Mac” dialogue just says “Mac OS X Version 10.5.8”.  Is that higher or lower than Leopard?  Who knows?

Well, Wikipedia does, of course: according to its Mac OS X page, “Leopard” is version 10.5, so my 10.5.8 should be OK.  But, really, folks, is it too much to ask that your download pages say “works on OS X 10.5 (Leopard) and higher”?  To make things worse, Apple’s brilliant naming scheme uses “Snow Leopard” for 10.6 — I wonder how many people have been caught out by assuming that Leopard and Snow Leopard are the same thing?

So, software producers, please state both name and number of the operating system version your stuff needs.

But, really, operating-system producers, do you need to do this at all?  Isn’t it enough just to use numbers?  I mean, they have a sort order and everything!

Worst offender here is of course Debian GNU/Linux: Debian releases may have any or all of a name, a number and an additional transient name.  So the version called “Lenny” (currently numbered 5.0.7 but I guess it was 5.0 at one point) is also, currently, known as “stable”.  “Etch” (version 4.0) doesn’t have a transitory name any more (but it used to be “stable”).  The version called “Squeeze”, currently also known as “unstable”, will one day be “stable” (but still “Squeeze”) and will have a version number in the 6.0 space; but currently has no version number at all.  This is brain-hurting stuff.  I am getting sick of having to go to the Wikipedia page Every. Single. Time. I have any Debian work to do.

Just stop it, people.

21 responses to “Names or numbers: pick one

  1. I prefer numbers over names.
    Btw, names are used since the epoch to refer to projects but only by the team involved with the project itself, but for the end users or members outside the project core, I guess it’s advisable to use the good old major.minor.subrevision numbering. (using A, B, RC as postfixes).
    All this makeing the IT world appealable to salesman and non IT people is really annoying :)
    Geek-powaaaaaaa. Revert our world back into pros hands ^^

  2. I prefer numbers over names.
    Btw, names are used since the epoch to refer to projects but only by the team involved with the project itself, but for the end users or members outside the project core, I guess it’s advisable to use the good old major.minor.subrevision numbering. (using A, B, RC as postfixes).
    All this making the IT world appealable to salesman and non IT people is really annoying :)
    Geek-powaaaaaaa. Revert our world back into pros hands ^^

  3. I have this problem with Ubuntu. It’s the main reason I switched to the LTS version! ;)

  4. The strongest argument against using version names (at least alone) is that it is hard to sequence them — although Ubuntu has addressed that for a while, that doesn’t really scale. (“You’re still using Space Tortoise? I’m already using Untidy Ungulate.” “You fool, those are releases of totally different software packages.”)

    I think there is value in having certain names, though. For example, I cannot think of a reasonable number to use for Debian’s “unstable” version, and when installing software, I would often prefer “whatever the current stable version is” without having to look that up.

  5. You are clearly missing the point. Mac OS X release names are strictly ordered by, wait for it, awesomeness.

    Clearly, “Puma” is more awesome than “Cheetah”, “Tiger” is more awesome than “Panther”, and for the last release, “Snow Leopards” are obviously more awesome than “Leopards”. Also note the subtle detail typical for Apple: this was only a minor improvement, so they chose the next animal to be just a tiny bit more awesome (i.e. Leopard with added snow capabilities).

    I mean, really, if you don’t get that, then you might just not be the right customer for this awesome OS ;-)

  6. I see you have carefully omitted the obviously false link in your chain of reasoning: there is no way that a leopard is more awesome than a tiger.

    (Add in the further complication that one of my employer’s production servers is named “leopard” — and runs Debian, naturally — and the confusion is complete.)

  7. Michael, you’re right that Ubuntu’s alphabetical naming scheme at least goes some way towards ameliorating the opacity of cute names.

    On Debian: I also agree that there is more justification for transitory names like “stable” and “testing” than for the “Etch” and “Lenny” style names that are only synonyms. Unfortunately, the Debian dream — that you just use “stable” for live systems irrespective of what that’s an alias for — doesn’t work, because of the appallingly slow Debian release cycle. For example, our (Index Data’s) MasterKey metasearching suite uses a couple of Java web-apps that need Tomcat 6. That’s been formally released since 28 February 2007, nearly four years ago (with beta releases going well back into 2006) yet Debian “stable” still doesn’t have a tomcat6 package — only tomcat5.5, which is no use to us. The upshot is that we have to run production servers on “squeeze”, aka. “unstable”, which is not how it’s supposed to be!

  8. Also by the transitive rule, all big cats would be more awesome than Cheetahs. What?!? What could be more awesome than going from 0 to 100kph in three seconds using only your own feet?

    Seriously though, +1 on the naming complaint. In the case of Debian or Ubuntu, I could easily imagine there’s no good reasoning behind it (“it’s probably not important, so let’s just have cute names for fun”). In the case of Apple, I wonder if it’s a deliberate marketing strategy, designed to reinforce hardcore users’ feelings of being a member of Club Awesome. Which of course reinforces feelings of exclusion for occasional users, people with bad memories, etc., but maybe that’s deemed an acceptable tradeoff because those users don’t spend as much money on Apple stuff anyway? probably don’t care as much. If that’s the idea, I think it’s a bad one, but who knows.

  9. Each label is contextual. “Cute” names (e.g. cats for Apple and Toy Story characters for Debian) are to describe a set of features that may not have a version number yet. Numeric labels are to describe a specific released product. And Debian’s stability labels are to describe, well, the stability of that particular version, independent of which feature set or specific release.

    The problem you’re running into is when the wrong label is used in an inappropriate context. Specifically in your example, the download page should care about a specific version, not a working set of features. The rant shouldn’t be about the multiple labels but about the misuse of the wrong label for the given context.

  10. Hehe, I have to agree, and when you do use numbers keep it consistent. anyone knows if photoshop cs2 is newer than photoshop 8? I always get caught by it.

    And BTW, you should specify that you mean real numbers, otherwise they are so smart that will start naming the OS Windows 7 + 2i and there we go again ;-)

  11. Don’t get me started on Windows numbering. In order, we have 2.0, 3.0, 3.1, 3.11, 95, 98, 2000, 7. Not to mention all the CE, ME, NT, XP stuff.

    When I was at university, a friend of mine wrote a program that went through 103 versions. The version numbers were 1, 2, 3 … 103. I like that system.

  12. Tish and Pish! Windows numbering makes perfect sense:
    0 = 2 * 0
    1 = 3.0 – 2.0
    2 = 3 – 1
    3 = 3 + 1 – 1
    4 = 9 – 5
    5 = 9 * 8 = 72 => 7-2 = 5
    6 = 2000 – 980 + 950 – 311 + 310 – 300 + 200 = 1869; 1+8+6+9 = 24 = 2+4
    7 = 7

    Really, what could be simpler than that?

  13. Android has a neat naming convention, each version is named after a delicious dessert, and in alphabetical order. I’ll admit it can be hard to keep all the numbername mappings straight, especially since the name does not seem to appear anywhere in Android, only the number.

  14. NetBSD: Just numbers. Just works.

  15. I think most software companies have an ongoing internal war between geeks who believe that non-geeks are not worth bothering about, and marketing people whose reasoning starts and stops at “Sellsellsellsell”. A good compromise leaves no-one satisfied, as your examples clearly illustrate.

    We have the same issue at my workplace, although with a twist: Our marketing people accept that it’s ok to use numbers – they just don’t like the actual version numbers assigned by the dev department, so they use their own numbering sequence which is extremely close to the real one. The result is that version “8.5” may refer to two different versions, depending on the level of geekiness of the person referring to it. It makes me wish they would just use names of awesome animals like Apple.

  16. Daniel: your marketing department wins the World Possible Versioning Scheme prize; please congratulate them for me.

    Vince: it took me a moment to grok the rationale for Windows 6, but now that I see it, it all makes sense.

  17. I work in an IT department that acts as an internal software house of sorts – our stuff goes to thousands of retail locations, so we’re semi-shrinkwrap.

    The developers use numbers. (10.03.72 for example.)

    The managers use names that, despite sometimes having numbers in them, don’t actually always make sense. So there was MIDG (named after a major feature) followed by MIDG MR1 (Maintenance Release 1) then MR1.5 (because we can’t go right to MR2!) then no MR2 at all, on to RS8 (Retail Solution 6) then RS8.1, 8.2, 8.3, 8.4, and 8.5. We’ve been stalled at RS8.5 for a while, because they don’t want to confuse the stores while we roll out to them over the next year, so the most recent releases have stolen a page from Microsoft – RS8.5 SP1, SP2, SP3, SP4 and so forth.

    It can be worse, though – I had a manager who insisted on calling different builds things like “dance mix” “party mix” etc – and nobody could remember which one meant which.

  18. I forgot my favorite version numbering system of all: TeX’s.
    http://en.wikipedia.org/wiki/Software_versioning#TeX

  19. Paul: that might work for TeX, but really, there is value in having something like major.minor.patch.build or similar – it can communicate things like backwards compatibility, risk of an upgrade, major features, etc. if used properly.

  20. Martin, I see the value in major.minor — basically, an increase in major version number means an API incompatibility for a library — but I’ve always been a bit hazy about what patchlevel and build-number bring to the party. What would be lost of they were rolled into the minor version number? Not disagreeing with you, just curious.

  21. “I’ve always been a bit hazy about what patchlevel and build-number bring to the party.” — Mike Taylor

    Patch level works well if you do optional/limited releases for particular customers or those needing specific, obscure fixes.

    Build numbers work well internally to disambiguate versions when communicating between testing, development and manufacturing. If you don’t cycle build numbers, then it can be the canonical reference internally, freeing the rest of the build numbers to let marketing do whatever they want with.

    For public consumption, build doesn’t do much and patch level isn’t useful if you don’t do limited releases.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s