Open Source Software (OSS) means that the people who write software make the source code available to others under various licenses, allowing others to use their code as they see fit. Proponents of this system of development note that OSS can be peer-reviewed, others can use the source code to make improved variants of the software you wrote, and everyone benefits because it's all free. Sounds quite Utopian, no?
All of these benefits are indeed true. The problem is that there's one key issue missing here: economics.
Before we delve into the economics of OSS, let's note that OSS is excellent for a number of things:
-- Users get free software; and free is one heck of an advantage
-- It's wonderful for educational purposes, students can crack open the source code to a program to learn how it works
-- OSS never "dies" because the source code is available, and others can continue developing it after the principal authors lose interest
-- With thousands of people looking at the code, it can in theory be peer reviewed
-- If a developer notices a bug in a particular piece of software, they can fix it then and there, without waiting for the original author to address the issue
There are of course caveats with all of these points. Free software is not necessarily free, there are training, transition, and support costs. Peer-reviewed code also means that malicious people can scour it for weaknesses, and more easily exploit them. The distributed, chaotic method of development is essentially design by distributed committee without a strong lead developer. And so on and so forth -- there's always some cloud around the silver lining.
The real issue, though, is economics. OSS is not immune to the law that money makes the world go 'round. Writing software is difficult; it takes years to become even a mediocre software developer, and it also takes quite a bit of work to develop a product to maturity, even after you're a skilled developer.
It is not realistic to expect that all of the software you want to use will be developed by someone else, for free, any more than it is realistic to expect that someone will go through the trouble to research and write books on every conceivable subject and provide them to you for free. It is similarly not realistic for someone to train for years to become a musician, and write wonderful songs for you to listen to for free. Yet there is quite a bit of useful OSS out there; why is that?
Certainly any attempt to classify anything leads to generalizations that are unfair, and exceptions will exists, and yet classification can be done in broad strokes. So let's classify away. Most OSS falls into a few distinct categories.
Tinkering OSS. People have some free time available, and decide to play around and contribute to one project or another. The skill set here varies widely, and the attention span is generally quite short. They must have real jobs to generate income, and an interest in coding on their off time.
Educational OSS. By this I don't mean that people are writing OSS to learn (though that is certainly part of it), but rather that the people who are writing OSS are students or professors. They have the spare time available, generally no job to be concerned about, and can hack away at a project that interests them (though generally with middling coding skill). The Linux kernel itself was begun this way by Linus Torvalds.
Enterprise OSS. Companies fund the development of certain OSS programs because it benefits them. A good example of this is Apache; the people who make up the core Apache team are all employed by companies that benefit greatly from having a robust web server available to them for free. Here the quality of the coding is generally higher, but you depend on companies to pay for the development of free software, which is only reasonably beneficial to them in narrow cases.
Zealot OSS. A small minority of people work on OSS because it has become a religious crusade of sorts; either a socialistic ideal they identify with, or they are rallying against the "tyranny" of companies like Microsoft. Again, the skill set varies here, but the devotion is generally quite good.
State-funded OSS. An increasing number of countries are realizing that if they wait around for OSS to be up to snuff, they'll be waiting a long time. Thus they are launching initiatives to spend public money developing OSS, with the notion being that it will contribute to the public good, and stimulate their own IT industries.
A certain level of OSS will always be created by tinkering/educational/zealot OSS developers, but I submit that they are not the most important demographic groups to consider. Take a look at most of the acclaimed OSS projects out there, and it becomes clear that they are enterprise OSS. Apache exists because corporations need a web server, and employing people to work on a free OSS web server is in their benefit. Apache is in the minority, however: most development companies won't benefit from making the software they develop OSS, because they can't sell it.
Yes, they can follow the RedHat model and sell packaged OSS/support contracts, but this is not a viable business model for the vast majority of software development companies. Let's look at Mozilla (the Netscape-derived web browser) and StarOffice/OpenOffice.org (a Microsoft Office wannabe).
Both of these important products have there origins as enterprise OSS. In the case of Mozilla, it was spun off and Open Source'd only after it was clear that Netscape lost in competing with Microsoft Internet Explorer in the web browser wars. Similarly, StarOffice (upon which OpenOffice.org is based) was Open Source'd by Sun after it was clear that they couldn't compete with Microsoft Office. In both of these very high-profile cases, the products wouldn't exist without corporate backing, and the products went Open Source only after they had lost in the commercial market space.
Once again, we have software that is OSS because the developers can't sell it in any meaningful way. Is it reasonable to expect that companies will fund the development of a wide range of OSS software? Not unless there is something in it for them, and there is much less in it for most software development companies when their project is OSS as compared to proprietary software.
Software development is no different than any other profession; yet people expect that a wide range of software will be developed for them for free, as if it is unique and outside the laws of economics. Do the same people assume that other professions should similarly create massive works for free? Should writers publish all of their research and writings for free, and allow anyone to modify and re-use it to their hearts content, even re-selling it? I submit that this would eliminate incentive, and thus reduce the the number of well-researched books drastically -- and the same thing applies to software as well. It isn't special.
Pick any profession: would artists create graphics that anyone could appropriate, modify, use, and re-sell at their whim? Would photographers bother taking pictures that people can similarly re-use, modify, and re-sell? This is why copyright laws exist, to encourage people to create such works by providing economic protections and incentives. Despite the ideological hype, software is no different. It shouldn't be any more free than other created works, for the same reasons: people need to be able to make a living doing their profession. I believe market forces will take care of this naturally; where there is no economic incentive to create software, it will be less vigorously pursued.
For instance, it has been widely acknowledged by people in the OSS community that custom software developed under contract will cost more initially than proprietary software. Why is this? Because the developers cannot benefit from reselling the software to other customers (since the source code is available for them to use), nor can they be guaranteed upgrades, support contracts, etc. Since the cost of developing said software remains constant, the price of the initial software development is raised.
There is a decent range of desktop software available as OSS, yet the majority of it is not particularly close commercial standards in terms of UI, feature set, and functionality, despite the constant cries to the contrary. Even being utterly free, this software isn't taking the world by storm: if people won't take what you're giving away for free, it's pretty clear it isn't up to par. Linux is also not even close to Windows (let alone MacOS X) standards when it comes to a consistent, easy to use, easy to configure/live with desktop operating system. Sure, it can (usually) be installed painlessly, but when people go to do basic things they are used to doing, they are unreasonably asked to edit various .conf files, or drop into the console.
Indeed, Linux has been around for quite some time, yet Apple came in and created a Unix operating system with a much easier to use and comprehensive UI, becoming the number one vendor of desktop Unix in a few short years. This demonstrates another pitfall of OSS: distributed part-time development on a wide range of projects (many of them competing) does allow for more choice, but it also results in slower progress, and multiple projects with half-implemented features and functionality.
OSS does have some advantages, and there are some very good uses for it. However, it is not a panacea, nor does it exist outside of the laws of economics. It's also not a lasting social movement any more than free love in the 60's was. I don't predict the death of OSS by any measure, but rather the tempering of the hype surrounding it as market realities set in.
This article originally appeared on the Ambrosia Software Web site. It is reprinted here verbatim with the author's permission. The opinions it contains belong solely to its author and may or may not be shared by OSDN editors and management.