Now I wonder if it makes sense to keep doing this. Shortly after joining O'Reilly as an editor, I quite suddenly realized I was spending a lot less of my time thinking about the Windows API. In fact, quite suddenly I found myself -- dare I say it? -- bored with the Windows API.
Before you tell me that the Windows API (indeed, any API) is boring, and that the wonder isn't that I now find it so, but instead merely that it took me this long, let me note again that what interested me in Windows was not any inherent qualities it might or might not possess; I cared about the Windows API because of Microsoft's importance, and because of Windows's market share. When I spent hours looking at some small piece of Windows code, I didn't feel I was engaged in some obscure talmudic examination of esoterica, but was in fact exploring the manner in which the majority of the planet's computers actually operate.
Now, Windows's market share hasn't dropped. On the contrary, with each day, the Windows family moves in and takes over more and more places. True, Windows 95 has not taken off as quickly as expected, and there is a lot of confusion (at least, I'm confused) about whether Windows NT is really suitable as a desktop operating system. But no reasonable developer would deny that the Windows API (including Win32) is the API that matters, or more generally that Intel processors running Windows ("Wintel" machines) are the computers that matter. And Microsoft Office is so much the dominant applications suite that it practically counts as part of the Microsoft Windows operating system. In short, Windows has won the operating-system wars.
So if the Wintel domination of machines, operating systems, and application suites still holds, how could I be bored with Windows?
Maybe it's just that I've just been staring too closely at Windows for too long (I attended a "Microsoft University" course on Windows some time before the release of Windows 2.0) and need a break from KERNEL, USER, and GDI. Too much, even of a good thing, is still too much. Too much of a mediocre thing (and Windows's mediocrity is really the secret to its stunning success) is definitely too much.
But when I talk with others in the industry, I sense that they too are becoming bored with Windows.
In other words, just as Microsoft wins the war -- Apple is in shambles, IBM is clearly backing away from OS/2, and the Unix vendors are adopting via emulation the Windows API -- Windows quite suddenly looks a lot less interesting to people who had previously found it fascinating.
Why? What's going on?
Well, there are plenty of industry pundits who claim there is a Big Shift going on. The particularly pretentious ones (who have heard of, but probably not read, Thomas Kuhn's The Structure of Scientific Revolutions) like to call it a "paradigm shift." These pundits would say, I think, that Windows seems boring because the Internet -- more precisely, the World Wide Web -- is where the action is.
This is a very plausible explanation, but ever since the days of OS/2 1.0, I don't pay much attention to these pundits. OS/2, you'll recall, was going to define the next generation of computing. So, in slightly later times, was the PowerPC, and pen computing, and who knows what else. It is always The Year of Something, or the Year of Something Else.
And certainly, the Web looks at times like another one of these hyperinflated "revolutions." Just take one example: While Microsoft stock sells at 6.5 times sales, Netscape stock sells at around 66 times sales. But the Internet, claims one stock analyst, "is not a market to which traditional valuation should apply" (quoted in "Taking Stock: Historical Look at Netscape, Microsoft", January 3, 1996). Sheesh!
But genuine shifts do sometimes take place. An industry pundit (leaning back in his chair, and staring off into space with that "visionary" look) would, I think, put it this way: Just as there was a Big Shift from mainframe computers to minicomputers, and from minis to desktop personal computers, so we are now part of a Big Shift from standalone desktop PCs to a worldwide, tightly integrated, web.
Such statements are usually issued as if the speaker had said something new or profound, and not as if they were just parroting some company's press release; in this particular case parroting Sun's self-serving slogan, "The Network is the Computer."
The problem I'm having is that, more and more, I'm seeing that this self-serving slogan is true, and that those annoying pundits and visionaries might just this time be right. The network is the computer? Yes.
Until just recently, I've assumed that (to go into the slogan-coining business) "The Operating System is the Computer." This of course has been Microsoft's assumption. It has held true for the past five to ten years. Is it still true?
Microsoft hasn't quite met its goal of "a computer on every desk and in every home, running (exclusively) Microsoft software," but clearly the market is saturated. With Windows now running on something like 150 million machines, establishing a platform that is so common that one can almost forget about it, it's time to ask, Where do we go from here?
To get a big jump in productivity from all those Wintel machines out there, something more is needed than bigger and slower operating systems, and bigger and slower applications. Something more is needed even than faster processors, faster operating systems, and faster applications (not that the latter two are going to appear any time soon). For more than small incremental improvements, all these Wintel machines need to be hooked up into a tightly integrated worldwide network. And that was never on Microsoft's agenda.
Can Microsoft do as well when "The Network is the Computer" as it did when the OS was the computer?
More specifically, for developers: Is there life beyond the Windows API?
But that's just it: Windows looks more and more like mere substrate, or plumbing. Windows is becoming so common you can almost forget about it. It's just something that's there, that you can take for granted. All the really interesting things will be happening elsewhere.
In other words, Windows is slowly but surely becoming a BIOS. The BIOS is a completely ubiquitous type of software that runs on every PC, and that loads before the operating system. You see a brief message about it for a second when your turn on your machine, and that's it. Actually, Windows virtual device drivers such as VDD, VKD, VMD, and so on replace large parts of the BIOS. I don't mean to sound like a techno-philistine about this, but did you know, or do you care, that Windows replaces much of your BIOS? No, I didn't think so. That's what a BIOS is.
Now, it may sound absurd for me to say that commoditization, BIOS-ization if you will, is the inevitable price of wild success. And it may sound utterly stupid for me to suggest that, while Microsoft Windows underlies most computing, it may soon no longer define most computing. Underlie, but not define? How's that possible?
A few years back, Microsoft vice president Brad Silverberg (who was still on speaking terms with me then) told me his fears regarding Lotus Notes, how if Lotus could get apps written to the Notes API, then suddenly the Windows API would become a lot less important. I told Brad I thought he was being paranoid, because even in the unlikely event that Notes did succeed, it would still be running on top of Windows, so Microsoft would still come out ahead.
Not so, he told me (actually, what he said was "Andrew, you just don't get it, do you?"). In this event, the Windows API would be reduced to an easily-cloneable BIOS. "Microsoft doesn't want to be in the BIOS business," he said.
I've always been fascinated by the way that Microsoft could manage to develop a standard as crucial as the Windows API -- as seemingly BIOS-like as the Windows API -- and yet not be reduced to the lowly status of BIOS vendor. Microsoft has managed to make its standard ubiquitous, yet keep it proprietary.
But now I wonder if Brad's nightmare isn't possibly coming true. Not because of Notes, of course, but because of the Web.