It is now estimated that there are more than 1.2 billion computers in the world. We will have 2 billion before the end of 2016. Over 225 million of those computers are in the United States. Japan is in second place with more than 70 million. China and Germany are tied for third place with 45 million each.

Apple’s market share in the U.S. is estimated to be near 11%. Globally, it is a smidge over 5%. Allowing a very thin slice for Linux, it’s probably safe to say that some iteration of Windows is running on more than 90% of all the computers in the world. (How many of those installations are legal is another matter.)

Because most installations are sold with the machine, it’s likely that the age of the machine determines which version of Windows is running. Windows 7 has been extraordinarily successful for Microsoft, but there are still a lot of machines running Vista and XP. Above a certain age, it’s unlikely that an older machine will have the RAM or hard drive space to run Windows 7.

PCs and the operating systems that make them possible have been in an evolutionary “arms race” since the days of CP/M. As computers get more powerful, developers add more features. More features mean the operating system needs more clock cycles, so manufacturers have to make more powerful chips, and the cycle continues.

Thirty years ago, running WordStar on an 8-bit CP/M machine, I could get a lot of work done. I could write 5,000 words a day, sometimes more. Today, running Microsoft Word on a 64-bit Windows 7 machine, I can write 5,000 words a day, sometimes more. The difference is that now I have access to spelling and grammar checking, a thesaurus, tables, what-you-see-is-what-you-get formatting, a variety of interesting fonts and formats to play with, style-setting, drag-and-drop smart-linking, the ability to add and manipulate color photos and graphics, and a whole bunch of other stuff that must be useful to somebody or Microsoft wouldn’t have included it.

Call it feature-creep or bloatware or whatever, this is what professional-level software must include to be considered “professional.” Even the freebies like OpenOffice and GIMP and Audacity and IrfanView have evolved far beyond their simple beginnings. The point is there’s a lot of very complex software in the PC universe. And there are 1.2 billion computers that (allegedly) should be able to run any combination of that software.

That’s a pretty interesting thought.

If even 1% of those 1.2 billion computers have problems resulting in crashes, freeze-ups, or failures to boot, that’s still 12 million unhappy users. And when they start complaining, they’re going to generate a lot more attention than the 1.08 billion users who aren’t having problems. That’s just enough chatter to create an impression of instability in the operating system.
#!
But let’s face it: It’s easy to blame Windows for the Blue Screen Of Death (that’s what you see whenever anything goes seriously wrong, whether it’s Windows’ fault or not). A screenful of incomprehensible hieroglyphics does not tell you what just happened.

But is every crash really the fault of the operating system? I think a lot of it is PEBCAK (Problem Exists Between Chair And Keyboard). What did the user install and how did he configure it?

To truly understand how we got here, you have to go back to Windows’ roots. Way back in the Cretaceous era, when DOS 4.0 was garnering the same kinds of plaudits as Vista, Bill Gates and the other boffins at Microsoft were already looking ahead to a different kind of operating system.

In those days, every video monitor had its own set of display codes. Every printer had its own set of command codes as well. That meant that every piece of software you owned had to be configured for your video monitor and for your printer. Your word processor, your spreadsheet, your database and anything else you installed, all needed to be told how to access the hardware. (Only people over 40 are going to remember this.) If the manufacturer had not provided codes for your monitor or your printer, you had to write your own configuration file. This was one of the reasons why WordPerfect became a serious competitor to WordStar. WordPerfect came with a library of configuration files for the most popular printers and monitors.

But it was obvious even then that the situation was out of control and promising to get much worse, because the hardware companies believed in standards; every manufacturer had its own. There was no industry-wide, commonly accepted interface for printers and monitors.

Bill Gates (and company) wisely realized that this situation was untenable. The operating system had to become the nexus where everything gets sorted out and managed. From the beginning, DOS had been little more than a set of file-management tools with a scripting language. The new idea was that the operating system should provide a central access for both software and hardware. That would lessen the burden on manufacturers and consumers, especially companies who were growing resistant to upgrades and new purchases because of the extra time and effort and cost involved.

With the operating system providing central access, software publishers wouldn’t have to provide multiple configuration files for hardware devices, they’d simply write to the API and their programs would be able to display on any monitor or output to any printer. Manufacturers would be equally freed; they’d provide a single set of OS-specific drivers, and their hardware would be accessible to every piece of software on the computer, and that would expand the usability of their hardware.

Having hardware and software interact through the Windows’ API was a brilliant solution: It eliminated the most frustrating barrier to setting up and maintaining a PC. It also guaranteed that Microsoft would have a stranglehold on the entire PC market forever after. Where previously the PC market had been IBM-centric, now it was Microsoft-centric.

Somewhere in there, Bill Gates visited Apple, and Steve Jobs showed him the graphic user interface that would shortly become the Macintosh. Gates immediately recognized the benefits, and that was really the moment when Windows was born. Once you have the operating system serving as the coordinator between software and hardware, then what-you-see-is-what-you-get is both possible and practical. And inevitable.

It took three tries to get a workable Windows operating system into the marketplace. The hardware had to catch up to the demands of the graphics before Windows was a useful environment. Windows simply wasn’t practical until the 32-bit 386 processor was available.

But even after Windows 3.0 hit the desktops, it was still dangerously buggy—the sudden horrible appearance of the white UAE (Unrecoverable Application Error) box could cost you hours of work, unless you were saving your files regularly. It wasn’t until Windows For Workgroups 3.11 that Windows became rugged enough to be considered dependable. Windows For Workgroups also made it possible to have a local-area-network.
#!
But despite more than 20 years of evolution, there’s still a widely held belief that Windows is inherently buggy (even Windows 7, if you believe Apple’s last smarmy little “I’m a Mac” ad). But that belief stems from a serious misunderstanding of what’s really going on under the hood.

Windows is supposed to be the coordinator for all your different programs and peripherals. But think about that for a moment: There are thousands of different hardware manufacturers, producing all kinds of add-ons, peripherals, devices, plug-ins, gadgets, doo-dads, thingamajigs, whatchamallits, and doohickeys for PCs and laptops. Probably tens of thousands of manufacturers.

There are tens of thousands of software publishers—everything from high-level professional suites to freeware utilities, with stops along the way for trialware, demoware, nagware, crippleware, sneakware and shareware. Most of those programs are well-behaved because the authors understand the value of working with the API, but some have been written by coders who think they’re being clever reaching under the hood of the API and messing around with the internal wiring of the system.

And let’s not forget all the legacy hardware and software either. Windows has inherited the responsibility of managing software and hardware that were designed for an earlier era of computing, because there are a lot of users still depending on software purchased as early as the DOS era. Ask around. “Oh, I don’t need to upgrade, my old program still works.”

So that gives us an environment with at least 10,000 hardware possibilities and at least 100,000 different pieces of software, and all of these can be assembled in so many different combinations of circuitry and code that any numerical calculation of all the possible iterations is left as an exercise in futility for the reader. It might not be “infinite” as we understand the true nature of infinity, but the enormous number of possible combinations is limited only by the number of PC owners in the world because every single computer on the planet—1.2 billion of them—is a unique combination of hardware and software determined by the person using it.

The essential problem for Microsoft is that Windows has to run flawlessly in every single one of those iterations. If you think you’re a beta-tester for Microsoft, you’re right. They can’t test all those different combinations. You’re testing the combination of hardware and software on your desk. Microsoft can do a pretty good job with the big stuff, the popular stuff, but they can’t be expected to test every piece of code everywhere.

So all that has to happen in front of you is for ThisWare 6.28.32 to disagree with ThatWare 3.14.16—and suddenly the mouse stops responding or the system won’t boot until you unplug the MyThing USB connector, or you get some other weird behavior that is not in the manual and doesn’t show up on Google.

And you’re going to blame Windows.

Or it could even be something that you did, like that little batch file that you cobbled up to remove all empty folders, and the result is that Microsoft Security Essentials turns itself off and refuses to start again because it can’t determine that your installation of Windows 7 is legal.

And you’re going to blame Windows.

It might not be Windows’ fault. It might be yours.

What do you think?

David Gerrold is the author of over 50 books, several hundred articles and columns, and over a dozen television episodes, including the famous “Star Trek” episode, “The Trouble with Tribbles.” He is also an authority on computer software and programming, and takes a broad view of the evolution of advanced technologies. Readers may remember Gerrold from the Computer Language Magazine forum on CompuServe, where he was a frequent and prolific contributor in the 1990s.