Over the last few years, I've read a number of articles on the open source development model for software. One of the themes of these stories is how the open source model for software development is superior to the commercial model. Open source development is, effectively, many unrelated or related developers collaboratively producing software for the free distribution, improvement, and use of anyone willing to abide by the software license—such as the GNU General Public License (GPL) or Lesser General Public License (LGPL). Commercial software, by contrast, is developed by programmers employed by one company (or in partnership with many companies) for the purpose of creating a package that will be sold and whose code is protected through various intellectual property mechanisms, such as a patent and/or a copyright, making that code inaccessible to the purchaser.
I realize that in many cases open source software is also protected by a copyright and potentially a patent; the main difference, however, is that what I'm calling "commercial" software doesn't grant the user any other rights beyond the use of the software package, whereas the typical open source software license provides broad rights to modify the code and distribute it, in whole or in part, in any way the user sees fit.
Proponents of the open source model suggest that these differences yield "better" software and encourage innovation. In some cases, that may be true. However, I still can't get past a few basic concepts about the open source model:
- How is a free model of software development sustainable? I see lots of commercial firms marketing open source solutions, making money on support. However, the population of developers outside of those firms make nothing on their work creating the code; if developers can't make a living working to create innovative products, what's the point?
- Open source proponents suggest that open source software is fast overtaking commercial software. If that true, where's the evidence?
- With the lack of a cohesive and coordinated development and support mechanism, why would anyone seriously consider using open source software to run a business?