(From this Slashdot thread):
There are three approaches to computing.
There’s the commercial-ubiquitous approach. This is Microsoft’s approach. Try to support (or to get manufacturers to support) as much hardware as possible. Be the default solution. Things generally look good (I can’t fault Microsoft over their years for most of their UI decisions), stability may not always be terribly good though, and that’s the sacrifice, ubiquity over stability, but the gain is to run on just about all hardware in existence. Android is also mostly falling into this category too now.
There’s the commercial-restricted approach. Sell your hardware and your software, and only allow a select-few others to sell hardware or software that is compatible with your products. The upside is that the platforms are highly stable, but the downsides are that users will sometimes find they simply can’t do something because it’s disallowed. It also requires the company to be ever-vigilant about pushing more features and capabilities, as stagnation will mean death. Apple currently leads this community, but SGI, Sun, NeXT, Commodore, and a whole bunch of computer companies throughout the years have tried it and ultimately closed up shop.
The Open-Source method is the third approach, and it’s both leading edge (ie, research projects by major universities) and completely behind (many user applications simply don’t exist or are only partially functional).
I use Windows, OSX, and Linux daily as desktop environments. _Linux is stable and fast, but often not compatible with developments out of Redmond and with a lot of work to make some features function. OSX is very smooth, very stable, and awkwardly locked-down to where some things simply aren’t options. Windows is compatible with just about everything and requires weekly reboots to keep it running. _
They all suck. All of them.