In the article, Bright first explains how Microsoft developers were in a happy place in the latter half of the 1990's, whereas Apple was in big trouble due to the fact that its operating system was an old piece of junk (personally, I happen to like Mac OS 9, apart from its slowness). On Microsoft, Bright writes:
This was attractive to someone who programmed for a living. Developers felt valued, like the company cared about them. I enjoy programming, and I enjoy writing software. I did then; I do now. So for me, this is really a key piece of what a platform has to offer.
The Apple world wasn't as rosy as the Microsoft world back then. Apple's operating system lacked a lot of modern technologies like protected memory and preemptive multitasking. Apple started the Copland project to bolt these (and other) technologies onto what is now known as Classic, but they failed miserably. Promised developer releases were never released, it suffered from feature creep, and was ultimately cancelled. Consequently, Apple went shopping for another operating system to base the next generation Apple OS on, and after a brief flirt with Be, Inc., they purchased Steve Jobs' NeXT Software and its operating system, NeXTstep. The rest is history. As Bright writes:
It took a while before Mac OS X, released in 2001, became usable, but Apple continued to update the operating system, adding new frameworks and APIs, which enabled developers to easily make applications that not only looked great, but worked great too. Microsoft, in the meantime, had released Windows XP, and more or less left it unchanged for years until Windows Vista came along last year.
Bright continues to explain that these high quality frameworks and APIs in Mac OS X resulted in Mac applications that looked and worked great. This was not only a result of the APIs, Bright argues, but also because of the attitude of the developers using them; Mac developers seem more devoted, more willing to make an effort with their applications. Compare this to the bulk of Windows applications, which are "shoddy", as if Windows developers "just don't care". Bright attributes this to the fact that many Windows programmers work for the enterprise. Summing up, he states:
But it doesn't inspire me. Writing software for Windows is a pain. Much of the platform is clunky and badly put together, and it makes development much less enjoyable than it should be.
And that is the main argument Bright puts forth in his article. The Win32 API still suffers from design decisions made over 20 years ago, and it's huge, and, according to Bright at least, quite inconsistent. "It's inconsistent in every way imaginable."
Back in July 2007, I wrote something similar in an article in which I detailed how I think Microsoft should go about the development of Windows Vista's successor, Windows 7. One of my main points was that the NT kernel doesn't really need to be scrapped; it is the userland and APIs that need to be rebuilt from the ground-up, with backwards compatibility moved into a virtual machine, just like Apple did in Mac OS X with the Classic environment for old System 8/9 applications. Today's processors are fast enough for such a VM.
In addition, my article advised Microsoft to release betas and RCs often, free for the public to test and play with. After the release of this imaginary Windows 7, Microsoft should mimic Apple's behaviour after the release of Mac OS X 10.0: update the operating system as often as possible, preferably free of charge. Provide excellent documentation on the new APIs, allow easy access to bug-tracking systems, and create a good atmosphere for developers and users to interact with one another.
It is still too early to tell whether Microsoft will take such a bold step, but it seems as if I am not the only one advocating it. Which is a comfort.



4 