If Linux is so great, why has it not replaced Windows, OS X and other closed-source operating systems completely? More generally, why do people still write and develop proprietary software, if open source is a more efficient, user-oriented and secure way to code? Those are important questions about the big-picture significance and future of free and open source software, and they're worth thinking more about.
I do not mean those questions to sound pejorative, or dismissive of the idea that Linux and other open source software is actually good. Open source has distinct benefits for both users programmers and users, which make it superior in many ways to closed-source software.
Chief among those benefits is that open source development is often more efficient in many respects, because it is decentralized and does not require burdensome bureaucratic structures. That does not mean it's cheaper—on the contrary, the Linux Foundation has for years been touting evidence showing that IT professionals with Linux skills tend to earn more money than those who lack such expertise—to develop open source software.
Yet it is arguably a faster and simpler way to write code. After all, there's a reason that Microsoft (MSFT) releases new versions of Windows about twice a decade, while new editions of the Linux kernel—as well as all of the apps that complement it—are churned out multiple times a year.
Open source is also theoretically better for users. In the closed-source software world, the only way users can influence which features developers include in the code they write is with their purchasing power. In contrast, most open source projects make it easy for users to communicate directly with developers, or—even better, in developers' eyes—to contribute code to the project to implement the features they would like to see. You certainly can't do that with Windows, unless you work for Microsoft and have access to its source code.
Last but not least, open source theoretically enjoys advantages in the realms of security and stability. That's because, as Eric S. Raymond has famously argued, "given enough eyeballs, all bugs are shallow." In other words, having a large group of users and developers working on a project, and able to view the source code, provides a faster way to spot security problems and other flaws. In contrast, a company such as Microsoft only discovers security holes by having much smaller teams of developers scan thousands of lines of code—decreasing their chances of finding problems before a third party exploits them.
For all of these reasons, open source stands out as a better way to do software. However, closed-source code has hardly disappeared since free and open source alternatives began appearing in the 1980s.
There are several possible explanations for that outcome. A typical one is that the free and open source crowd has done a poor job of marketing—although that argument holds less water now, given the large-scale commercial support for many open source projects, and the ability of companies such as Red Hat (RHT) to market them aggressively.
Another explanation is that closed-source software has simply become so entrenched that it is impossible for open source code to displace it entirely. Companies like Microsoft and Apple, which have become some of the wealthiest in history, do not disappear easily.
And perhaps part of the challenge for open source has been that developer-users—that is, people who are able and willing to participate in the development of a software project, rather than simply use it without having any special technical knowledge—are rarer than advocates such as Raymond have wanted to believe. Open source modes of development only work well when there are lots of qualified "eyeballs" reviewing and revising the code, but the vast majority of computer users have no interest in doing that, let alone the skills it requires.
Are there additional reasons that explain why Linux and other free and open source software projects have only established a sizeable presence in the software world, but not won it over entirely? I'd love to hear other thoughts below as I continue working on a project about the history of the FOSS world.