The double standard goes both ways. Windows users are supposed to pay money for a product that they must then accept, as-is, sight unseen, and in some cases they must even keep secret what they learn about the product after they purchased it. Linux users are not obligated to pay money for a product at all, but even if they choose to do so, they can have the product’s internals inspected by a professional of their choice before purchase, and can publish the results of such inspection whether they purchase or not.
Which would you be less satisfied with:
Purchasing a mysterious box that promises everything, but cannot be easily modified and only delivers a realistic engineering compromise, or
Receiving a free box that obviously contains a realistic engineering compromise, with the option of hiring someone to help you make it work or even make it work better?
Frankly after 15 years of smacking both Windows and Linux systems senseless, it seems to me that the real problem is more the applications that are available for the systems, not the systems themselves.
Just about all software ultimately behaves in ways that reveal the intentions of its vendor. At one extreme are viruses, which provide no benefit to the user of the computer and often a lot of harm. At the other are excellent software packages which provide huge benefit to the user at almost no cost.
In between are several familiar examples of software that tries to strike a balance, but fails:
programs whose user interface designs are better at promoting the vendor’s branding than whatever it was that the software is ostensibly supposed to do
programs which were obviously rushed to market with half-working new features that are useful only to people who previously bought the competitor’s product
programs which scatter pieces of themselves all over the less-visible parts of the system not because of malicious intent, but because their developers just didn’t know what they were doing, and their managers and project leaders were even more clueless.
The products in between the extremes are often the most offensive to me, because they are the product of a lack of pride in workmanship during the development process, and that affects my entire emotional state whenever I use the software, in the same way that shoddy craftmanship would affect me every day if I lived in a poorly built house. I can feel the presence of the software’s developers in the room with me, but I only know them by reputation, and that reputation comes from the behavior of their software; therefore, using half-assed software is like having my personal space invaded by clueless, uncaring morons, while using well-designed high-quality software is like surrounding myself with pleasantly intelligent people.
The social process that leads to mediocre software is not OS-specific. People who produce bad software can produce bad software on any platform. There is more bad software for Windows because there is more software for Windows, not because any special property of Linux weeds out bad software developers. The thing is, how do we get rid of the bad software without affecting the good?
We do want to get rid of bad software. Bad software costs us money, consumes human, machine, and environmental resources, and is a pain to use and maintain. Bad software should all go away as soon as the good software can be installed, our legacy data converted, our users retrained, and our costs recovered.
Most if not all of us, if handed a magic wand of logistical omnipotence, would wave it vigorously without a second thought (well, actually most of us would probably not believe it was truly omnipotent, but acknowledging that fact ruins an otherwise perfectly good argument). This idea is common in religions throughout the world. The difference between one religion and another is the definitions of words like “bad”, “good”, “converted”, “retrained”, and “recovered.” If we use wildcards for those, most religions tend to be very similar.
Software platform differences in particular are like isolated islands where evolution occurs in a sheltered environment. Good software on one island can’t occupy the ecological niches on other islands, so bad software flourishes wherever there’s no good software on the same island; therefore, as a user, we want to live on a large island where hopefully a lot of good software has evolved.
This was how Microsoft got its start: find a whole lot of users who don’t know good software from bad and/or have access to no software at all, sell them something marginally better than nothing, use the funding to improve the product, then sell them something marginally better than what they just bought. For a while Microsoft provided a very useful function, so it thrived.
Evolution in isolation was also how Linux got its start: find a whole lot of users who want software with a particular license over all other criteria, give them something marginally better than nothing, then collect their patches and criticisms as quickly and cheaply as possible, and give back something marginally better than what they all have individually. Linux quickly outgrew its niche and stomped on a few competitors along the way, not all of whom survived. Hopefully the competitors were all the bad-software kind…
The wars start when the religions meet, because the groups need resources to thrive–especially new members who increase the wealth (not just money, but talent, time, working code, etc) of the group, as software developers do among populations of computer users. Imagine how far Linux development would have progressed until today if Microsoft’s products were consistently good software at a fair price, or if the Unix vendors hadn’t dropped the ball so badly in the 90’s that they nearly destroyed themselves. Who would do the serious work on Linux if they already had access to an adequate operating system with acceptable licensing terms? (see the GNU Hurd or the BSD’s for an answer to that question) Or, if you prefer, look at the changes in Microsoft’s behavior in the past few years, and the potential competitive consequences Microsoft avoided as a result.
The wars will go on as long as the conditions required to end the wars are not met, because each of the opinions in the religious wars is basically right, or at least not wrong, and groups who follow the religions are essentially functional and self-sustaining, so they can continue having their opinions for a lifetime as long as the parts of the ecosystem that keep them alive don’t change. Those religions which truly are wrong usually die quickly, sometimes spectacularly.
Ironically enough, the fact that the religions have nothing to fear other than themselves means that the only credible threats to the survival of the religious groups are the groups themselves: since the groups are large enough to form self-sustaining ecosystems, one might absorb or destroy the other, or even change the local environment to their own advantage. This is probably why some members of each group see converting or recruiting as many new members as possible as such a high priority–if all other factors are equal, the religion with the most believers wins.