Saturday, March 22, 2008

Operating systems are not cars

Every once in a while I come across the argument being made that OS choice is like car choice. It's usually in a forum involving Linux, where one poster will lead off that there's too much choice and the follow-up will read something like:
But how will we ever choose what car to buy and drive with all this choice.. it's too much..

Or maybe, the user can focus on the device and features it provides rather than the embedded OS. The people who will focus on the embedded OS are not usually the type that are scared by choice.
Operating systems and environments are different enough that if cars truly were built the way we build our software there would be far fewer cars and they'd be a lot more expensive. The key to ubiquity is the interface, and the simpler the better. All cars come with the following common user interface:
  • Ignition or starter (true on/off)
  • A steering wheel
  • A break pedal on the floor
  • An accelerator pedal on the floor
  • A gear selection
  • Speedometer
  • Gas (or petrol) gauge, indicating full to empty
  • Rear-view and driver side mirrors
And that's for automatic transmission cars. For manual transmission cars the gear selection becomes a little more complicated (more gears) and a clutch pedal is added to the break and accelerator on the floor. Using a manual shift requires a bit more coordination and attention on the part of the driver, but the key point is this: once you've learned either (or both) skill sets on any one vehicle, you can be pretty darn sure you can use the same skill set with just about any other car manufactured. And not just on the current crop of automobiles, but even older vehicles that were manufactured back before you were born. That's what standards can really accomplish if manufacturers allow it.

But what about user environments and the operating systems that host them? Let's do a quick run down of today's operating systems:
  1. Windows (in all it's versions)
  2. Windows Mobile
    1. Win 3x
    2. Win 9x
    3. Win NT
    4. Win 2k
    5. Win XP
    6. Vista
  3. Palm OS
  4. Mac OS X
    1. Leopard
    2. iPhone/iTouch embedded Mac OS X
  5. Linux
    1. KDE
    2. Gnome
    3. Xfce
    4. Fluxbox
    5. ...
  6. Linux Mobile
    1. Maemo
    2. Android
    3. ...
  7. Solaris
  8. *BSD
Why do I list them this way? Because each major division (Windows, Mac, Linux, etc) is significantly different enough that moving from one to the other requires significant re-training because there are enough major and minor differences between them to perform the same tasks. They may look nearly identical at first blush, but put someone in front of a Mac (or Linux or ...) who's been sitting in front of Windows for the last 10 years and you're going to be spending a lot of time getting them up to speed and assuring them they're not stupid. Even Microsoft's changes from major version to major version have involved enough changes that a lot of people have not upgraded and will never upgrade because what they have works for them and they do not want to have to unlearn one set of skills and learn a new set to perform the exact same tasks.

And that is the lesson the auto industry learned at the start of the twentieth century, and made absolutely sure they never forgot. Not only do car companies have to compete with other car companies, but they need to convince customers to trade up. And the only way that they can do that is to make sure that (1) the new cars are at least as good as the old cars, and (2) that Ma and Pa Kettle don't have to learn anything different at all to drive the new and shiny car just like they drove their old trade-in klunker. Violate either of those and you will not sell cars. Or at least not enough to survive.

If us software folks made our user interfaces along the same lines then we really could compete with Microsoft and Apple. And that leads to some interesting consequences. We Linuxers like to point out the superior merit of our favorite OS and our favorite desktop environment. As do Windows and Apple fanatics. But if we all stuck to the same user interface and truly competed on merit, then how successful would we really be? I have some partial answers that will anger just about everybody:
  1. If we had truly interchangeable operating systems for our hardware, then there would be churn that would make the mobile industry look timid by comparison.
  2. In a world of real competition, Vista would be seen by all as the unmitigated disaster it truly is. Right now, because of Microsoft's monopoly on the desktop, they can ship 100 million 'somethings' and charge good money for it, then claim success with Vista as well as billions in gross receipts per quarter. But in a world of real competition, without the special contracts with computer manufacturers, said computer manufacturers could pick another OS and UI and install it in place of Vista on new machines, and wouldn't that have a powerful effect on Vista and Microsoft? Do you think for one minute that Microsoft would have waited as long as they did to release Vista SP1? Do you think Vista would have taken as long as it did to appear? Do you think Vista would have even seen the light of day? Real competition has a poweful Darwinian effect on products and services in markets where there is competition. The weak truly do not survive.
  3. Mac OS X has its supporters, and it's continuing success is based on both hardware and software, deftly integrated, from one manufacturer: Apple. Apple has successfully re-invented itself as the true alternative to Windows by providing the complete package. Jobs has long recognized that limited standards loosely adhered to results in a wide ranging user experience (from mediocre to truly horrible). This is a good observation. The problem is Jobs solution. While many complain (and rightfully so) about Microsoft's monopoly at the software level, Jobs has extended control into hardware, and with the iPhone SDK, even into how new applications are written and accepted for use on the newest platforms. But if Apple were truly open and could be interchanged with Windows or Linux on x86 systems, do you really think it would succeed? It probably would as an OS, but the mystique and the buzz would be considerably diminished. And one thing is for certain. If the operating systems were truly interchangeable across the Mac hardware platform as it would be across any other x86 hardware platform, then the premium hardware price Apple currently commands would be under severe pressure to go down. And Apple literally can't afford that.
  4. Linux, Linux, Linux. And Linux. Linux is so fragmented across its various distributions, let alone its various desktop environments, that to say Linux would succeed would be to ask "which one?" Right now Linux has an official 0.6% of the desktop environment. Linux is doing much better on mobile devices such as cell phones and in the cheap ultra-portable market, such as Asus' Eee, but that's because the manufacturers picked one and only one distribution to support (or they created one from scratch, furthering fragmentation). One thing is for certain. In a truly competitive market there would be far fewer distributions and there would have to be a lot more consistent quality across the board, especially with regards to hardware support. I've run too many recent releases where hardware that worked just fine in an earlier release suddenly stopped working in the next. Quality, especially at the driver levels in the kernel and X, is the Achilles heel of Linux.
Operating systems are operating systems, not automobiles. Our 'freedom' in the OS space results in too much effort expended when moving from any given OS to another, and in my not-so-humble-opinion is actually holding true innovation back. One lesson we can take from the auto industry is to agree on one set of core controls (the 'UI') that is consistent across brands and time so that true cross-usability is achieved. Then innovate in areas that really add to the experience. When we do that in the OS space then we'll have achieved something truly significant, and we can get on with advancing the state of the art in meaningful ways.

1 comment:

  1. I rarely disagree with you on Linux but I think you miss the real point. People create a distro because they CAN, The source code(s) are there. They enjoy creating and playing with it. I suspect that IF windoze was open source then there would be many many flavours of it and a lot better than the spoon-fed offerings from Uncle Bill. Playing with open source is FUN - you yourself LOVE trying out new stuff. I enclose a link that is only part of the truth but amusing too.

    Keep up your blog - great stuff on SuSE I have actually tried the new alpha too


All comments are checked. Comment SPAM will be blocked and deleted.

Note: Only a member of this blog may post a comment.