Windows 10, OS X, Lies, Damn Lies & Version Numbers - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
Software // Operating Systems
Commentary
10/6/2014
09:06 AM
Burke Holland
Burke Holland
Commentary
Connect Directly
Twitter
RSS
50%
50%

Windows 10, OS X, Lies, Damn Lies & Version Numbers

Software versioning is supposed to be a logical system. Problem is, there's precious little logic left in how Microsoft, Apple, and other vendors number their software.

Windows 10: 11 Big Changes
Windows 10: 11 Big Changes
(Click image for larger view and slideshow.)

When Oracle released the first iteration of its product in 1979, it slapped on the "Version 2" label. The rationale? Customers would not want to buy a product that was seen as immature. So how do you make a product mature? By incrementing the version number, of course.

The latest offender in Law and Order, SVU (Special Versions Unit), is Microsoft, which inexplicably (or not, as I'll discuss) went directly from Windows 8 to Windows 10, fulfilling a prophetic 2013 April Fool's joke. While Redmond has yet to offer a logical explanation of what happened to version 9, Microsoft is only the latest and most visible offender.

The crime wave is epidemic, to the point that versioning has been turned into branding and is therefore now largely arbitrary and meaningless.

Exhibit A: Each year Apple releases a major version of iOS but only a minor version of OS X. Why? Because iOS is young and needs to mature, but OS X is at Version 10 and needs to stop growing. Who wants to install OS XXXVIII? Moreover, Apple increments the major iOS version number even when there is little discernible change in the operating system. While the move from 6 to 7 was visually perceivable, going from 7 to 8 feels quite underwhelming.

Of course, versions aren't necessarily based on what the user can see. So what ARE they based on? Like most things, the answer is: "It depends."

For example, any idea what the current version of Photoshop is? You probably just know that it's part of Creative Cloud, or Photoshop CC. What version is it? Version 15, also known as "Single Malt Wiskey Cat." Adobe stopped referring to Photoshop by its version number after version 7.

Another interesting example is Microsoft Office. Office has stuck to the traditional "major version" scheme, with the current iteration sitting at 15. The branding is Office 2014. Interestingly enough, Microsoft has kept to this scheme very closely, except for 1992, when it decided to skip Version 2, and in 1995, when it skipped version 6. This was likely because Office is bundled as a suite of individually versioned products, some of which did have 2.0 and 6.0 versions. Got it?

We could go on and on, but the gist is: When do you as a vendor increment a new version number? Whenever you feel like it.

If this bothers you, there is a plan to fix the chaos. Enter Tom Preston-Werner and Semantic Versioning 2.0.0.

Semantic Versioning
The Semantic Versioning 2.0 Introduction (SemVer) very clearly states that the point of versioning is to help manage dependencies. It specifies that a product should be versioned as follows:

  • MAJOR version when you make incompatible API changes.
  • MINOR version when you add functionality in a backward-compatible manner.
  • PATCH version when you make backward-compatible bug fixes.

That seems pretty simple to me. As long as you have no incompatible API changes, your software only increases in minor versions or via patches. When you are talking about something simple like a JavaScript library, this is rather easy to adhere to.

Operating systems are an entirely different story.

Back to the Apple example. While we know Apple clearly doesn't do semantic versioning as prescribed by SemVer 2.0, let's see how it would play out if it did:

The latest release of OS X is version 10.10. That means that there should be no breaking API changes from version 10.9. Well, it turns out, we don't even need to go that far back. Version 10.9.5 includes a breaking API change from 10.9.4 when it comes to code signing. Apple warns "Beginning with OS X version 10.9.5, there will be changes in how OS X recognizes signed apps. Version 1 signatures created with OS X versions prior to Mavericks will no longer be recognized by Gatekeeper and are considered obsolete."

Can we call that an incompatible API change? I would say we definitely can since your signed apps are no longer going to be recognized as such. By semantic versioning standards, 10.9.5 should have been OS XI.

This is not news to IT. We don't really expect software to be semantically versioned, and there is a good reason Microsoft and Apple live up to that low expectation: As it turns out, semantic versioning is terrible for branding.

Versions as brands
Remember OS XXXVIII? We'd probably be waaayyy beyond that going by SemVer standards. Consider the mental stigma. Who wants to install version 37 of your software? That's some old code right there. Kill that sucker already and re-write it so it can stay shiny and new.

Software version numbers are like birthdays. When you're young, it's cool and exciting to get presents. When you're old, it's just annoying to be reminded.

Some companies have taken to just getting rid of version names in their software altogether. With Chrome, Google most famously did this by having a semantic version number that nobody even cares about because it's always updating. That's DevOps in action. The current version of Chrome? 37.0.2062.124. Semantic? I would say definitely. But nobody is going to go out and put that version number on a sticker and slap it on a new Chromebook.

OK, I promised a possible explanation of where Windows 9 went. And that brings us to one set of IT professionals who definitely care: developers.

While "versions as branding" seems harmless, it can have major consequences for the people writing the code. A user on Reddit who identifies as a Microsoft engineer reports that the whole reason Microsoft skipped version 9 is because developers were using code to determine Windows 95/98 versions and a Windows 9 version would get identified as such.

Microsoft dev here, the internal rumors are that early testing revealed just how many third-party products that had code of the form:

if(version.StartsWith("Windows 9"))

{ /* 95 and 98 */

} else {

(Image: Reddit -- New Windows Version Will Be Called Windows 10)

This is insanity. Nobody should ever have written code that checked for the brand name of a product to figure out which version it was. They should have instead checked for Windows version 4, since that's the actual number.

So when we say Windows 10, what we mean is: that's the name, not the version. We don't know for sure, but considering that Vista was 6.0, Windows 7 was 6.1, 8 was 6.2, and 8.1 was 6.3, it's safe to assume that Windows 10 will be version 6.4. But let's face it -- Windows 10 just sounds a whole lot cooler.

Does it matter to IT that Microsoft skipped 9 and went to 10? Not at all. Does it matter that Apple calls its current operating system OS X even though OS X has had at least 10 major releases in itself? Nope.

Versioning as a brand is arbitrary and meaningless and obviously nobody agrees on a standard.

So don't be surprised when we get to iOS X and then the major number stops changing. It's not about properly conveying which version it is, it's about selling more devices.

If the world wasn't changing, we might continue to view IT purely as a service organization, and ITSM might be the most important focus for IT leaders. But it's not, it isn't and it won't be -- at least not in its present form. Get the Research: Beyond IT Service Management report today. (Free registration required.)

Burke Holland is a web developer living in Nashville. He enjoys working with and meeting developers who are building mobile apps with jQuery / HTML5 and loves to hack on social APIs. Burke works for Telerik as a Developer Advocate focusing on Kendo UI. He is @burkeholland on ... View Full Bio
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
burkeholland
50%
50%
burkeholland,
User Rank: Apprentice
10/11/2014 | 12:38:19 PM
Re: Windows 9
Also a huge fan of what Chrome does.  Version number shouldn't matter and marketing needs to be kept away from using version numbers as brands so we don't keep creating more confusion for ourselves.  It's really a quite rediculous situation.
mak63
50%
50%
mak63,
User Rank: Ninja
10/7/2014 | 6:45:37 PM
Windows 9
The explanation of why Windows 9 name wouldn't work makes sense, and not just for developers. Consumers will be also confused.
In an also a Reddit post, one persons says:
"It's like they already knew they'd need a Windows 9.5 to fix what they screw up this time."

But the way, I like what Chrome does. In a 1000 years they will be still in version 37 :)
hho927
50%
50%
hho927,
User Rank: Ninja
10/7/2014 | 1:13:40 PM
Naming Semantic
in the old days, they followed the version naming semantic guidelines. Then marketting people took over. Now, they can name whatever they like to improve sales. After all, it's all about $.
Lorna Garey
100%
0%
Lorna Garey,
User Rank: Author
10/6/2014 | 12:31:31 PM
Dessert versioning
Personally, I think all software should be named after appropriate food groups. For ERP, it could be indigestible gut bombs, like haggis. For iOS, fancy coffee drinks that only hipsters actually enjoy. Et cetera.
Slideshows
What Digital Transformation Is (And Isn't)
Cynthia Harvey, Freelance Journalist, InformationWeek,  12/4/2019
Commentary
Watch Out for New Barriers to Faster Software Development
Lisa Morgan, Freelance Writer,  12/3/2019
Commentary
If DevOps Is So Awesome, Why Is Your Initiative Failing?
Guest Commentary, Guest Commentary,  12/2/2019
White Papers
Register for InformationWeek Newsletters
Video
Current Issue
Getting Started With Emerging Technologies
Looking to help your enterprise IT team ease the stress of putting new/emerging technologies such as AI, machine learning and IoT to work for their organizations? There are a few ways to get off on the right foot. In this report we share some expert advice on how to approach some of these seemingly daunting tech challenges.
Slideshows
Flash Poll