Microsoft and Unix

I finally got around to listening to last week’s episode of The Talk Show. Most of the talk was about Windows 8 and Metro, which John Gruber’s written several posts about1, but which I have virtually no interest in. There was, however, a short segment that’s referred to in the show notes as “John’s plan for Microsoft,” and I do want to talk about that.

The story is that four or five years ago Gruber and a friend noticed that web developers all seemed to be moving from Windows to the Mac. MacBooks had become de rigueur at Rails conferences and were starting to outnumber Windows notebooks at other web-trendy conferences as well. They saw this as a signal that Windows was going to start losing regular users, too, because high-end users can be very influential.

In addition to this accurate prediction, Gruber and his friend also tried to think of things Microsoft could do to reverse the trend. Personally, I think the reason for the trend, combined with Microsoft’s corporate personality, made a reversal impossible.

The reason for the trend was Unix. The web is built on Unix ideas and Unix conventions, from the underlying protocols to the slashes in URLs. It’s only natural that web developers would want to move to a Unix system, and by the time of Jaguar (perhaps) and Tiger (certainly) OS X was the most usable Unix around.

The only way Microsoft could have reversed the flow of web developers to OS X was by embracing Unix, something it would never do. Yes, Microsoft sold Xenix, and it had Windows Services for Unix, but these were aberrations. Deep down, at the very core of its corporate being, Microsoft hates Unix.

Part of this is embarrassment. DOS, despite its roots in CP/M, took a lot of ideas from Unix. Mostly, though, I think Microsoft has always wanted to be seen as an innovator in developing operating systems that ran on computers from different vendors. Unix is an inconvenient truth that interferes with that image.

In the old days, computers came with operating systems provided by the manufacturer. If you worked on a computer from Digital, you used VMS; if you worked on one from Control Data, you used NOS. Unix changed that. Thompson and Ritchie’s first Unix ran on a PDP-7 and was written in assembler, but they soon rewrote it in Ritchie’s new C language, and from there it could be ported to other computers and other architectures with (relative) ease. Administrators could install Unix on their minicomputers, and the users could simply ignore the vendor-supplied OS.

Microsoft’s claim to fame was that its OS ran everywhere. Unix was the turd in its punchbowl, beating Microsoft to the punch chronologically and in the number of systems it ran on, since DOS and Windows were closely tied to Intel processors. It’s no surprise, then, that MS would like people to forget about Unix.

Forgetting Unix is something web developers can’t do, which is why they left Windows when a user-friendly Unix presented itself. But Windows still has plenty of other developers, on whom it lavishes its own special brand of love.