At Lambdaware Labs, we believe that, whenever design decisions permit it, open source is fundamentally better when it comes to software. The primary reason for this is simply that it is subjected to the principal of evolution: bad software improves or just dies off. Additionally, open source lowers the cost of producing quality software, because it allows companies to share maintenance and testing tasks with developers from all over the world. We believe that developers with different (but related) goals and various backgrounds or inclinations tend to add a great deal to the overall robustness of systems. For these reasons, Lambdaware is involved in an ongoing effort to document and release as much of our internal tool chain as we can.
Open Source vs Proprietary software
In contrast with the advantages of open source, we often see proprietary software behave contrary to evolutionary principles in the following ways:
- Features are missing that would encourage external compatibility (the result of which is users being effectively "locked in" to this bad software for no other reason than because it is, q.e.d., bad)
- Often there is no perceived need for backwards compatability even among
different versions of the same software because such a thing would only encourage not upgrading. This is not only bad in and of itself but can additionally lead to
- An excess of cruft caused by no perceived need for a good initial design. "If the design were final we'd be out of business anyway"-kind of reasoning. This cruft can accumulate for years and is ultimately worse than the cruft resulting from an insistence on backwards compatibility because with proprietary software
there is little chance of a fork being needed, much less becoming dominate.
- The in-house design and implementation is subjected to only a very limited form of peer-review which just encourages blunders like security-through-obscurity, as well as more direct forms of intellectual dishonesty.