Originally posted by Leshrak
Why the fuck don't they take their new OS', make them as good as they possibly can and THEN release them?
Windows releases are already incredibly late. Windows Vista Beta 1 was released July 2005... official release was Jan 2007, and SP1 (when pundits started saying it was kinda maybe what it ought to have been at release) wasn't till Feb 2008. If MS had waited till early 2008 to release anything but betas (nothing wrong with prerelease betas to willing customers), people would have given up waiting and gone with Linux, or Mac OS, or something. There's only so long that you can delay a promised release before people start hating you.

And WHY are Windowses always late? Partly it's just a consequence of Microsoft being a huge company. The bigger the company, the bigger the overheads. Also, Windows doesn't divide cleanly into separate projects. For comparison, look at two ready-to-use computers. One has Windows, the other has Linux.

* Kernel: Windows, Linux. (Let's suppose, Ubuntu. That's a Debian kernel.) This is clearly something that should be (and usually is) independant of everything else listed here.

* Shell. Windows: Explorer. Linux... let's suppose you're using KDE.

* Web browser. Windows: Internet Explorer. Linux: Firefox.

* Jukebox: Windows: WMP. Linux: VLC.

Each of these, on both sides, will have its own development team. The Linux kernel geeks are completely separate from the Firefox geeks (although it's quite possible a number of people do both). MS techs working on Media Player quite possibly are completely separate from those working on the next version of the browser. But the separation isn't nearly as clean in Windows as it is elsewhere. The kernel and the apps are far too tied together (look through the Windows API for evidence of that), and the browser and the shell have heaps of common code. So any change made to the shell might well require notifying the IE developers, if only so they can take advantage of it. Every bit of liason like this has the potential to slow things down.

The other thing that majorly delays Windows releases is compatibility. Unfortunately I can't cite a reference for this, but ages ago I was reading in a dead-tree book about the release of some Windows, I think 95; and during their testing, they discovered that SimCity for Windows didn't work. Investigation proved that it was Maxis's fault (they were breaking the rules of memory usage), but MS's thought was "People will buy the latest Windows, play their games on it, and find that they don't work. Since they used to work, it must be Windows's fault!", and so they deliberately created bug-compatibility with the older Windows. For another prime example of bug compatibility and the headaches it causes when done badly, look up MB_SERVICE_NOTIFICATION_NT3X - it's programmer stuff though, so I won't bore you all with the details.

Ultimately, Microsoft's biggest problem is that they're living with a huge pile of history. When IBM and Microsoft originally began work on OS/2, it was designed completely new (and maintained support for DOS programs via emulation modes). This gave them a chance to wipe the slate clean and start fresh - named API calls instead of interrupts, for one thing. It's time Windows did the same thing. Over the history of Windowses, a large number of problems have accumulated (mostly a consequence of poor design decisions), and have had to be dealt with, inevitably imperfectly. It's time to throw all that out and have a simulation environment; maybe this would tie in nicely with virtualization technologies - simply don't support old Win XP programs (let alone Win 95), and allow a virtual XP session to do them all for you.

Actually, a number of people are saying that Microsoft needs to do the same trick Apple did. Grab a Unix or Linux kernel and build their GUI on top of it. I think it'd be a Good Thing... but it's unlikely Microsoft would do it. Mind you, I wouldn't have thought Apple would, either, and they did - quite successfully. So maybe it will happen, who knows? It'd certainly make cross-platform work a lot easier.