A simple description of software code is that it is a written shorthand, a language which a compiler or interpreter will understand. The compiler or interpreter will convert it to binary code that the computer can then execute and operate on. Like an article, software code can be copyrighted and licensed to other software developers who can then compile that software code into their programs.
There has been a tension between proprietary code and open-source for nearly as long as software has been around. Proprietary code is usually hidden from the software developer. To use proprietary code, the software can only interact with it in its binary form, not its human readable form - usually for a fee too.
In contrast, open-source code is distributed freely, and the developer has the option of using it as source code to compile into other programs. Alternatively, the developer can use it like proprietary code and just use it in its binary form.
Advertisement
There are numerous advantages and disadvantages to both distribution and licensing methods, but more recently a different economic facet has taken over from those considerations. Open-source projects usually combine the knowledge, wisdom and output of software developers around the world - bringing those attributes together to make software of remarkable complexity. This has created projects such as the Apache Webserver, the Linux and BSD operating systems, the Firefox web browser, plus numerous others.
A common facet of these projects is that they commoditise, not only the software code, but also the software product. The value is no longer in the source code, nor is it in the final product - it is the path taken to create the source code that is the point of maximum value now. Due to the organisational structure of open-source projects, and the almost limitless production ability popular projects can draw upon - any software product that can be commoditised, will be.
For software companies it becomes a question of where can you add value. Microsoft does not to appear to have learnt this lesson yet, remaining firmly fixed on the proprietary distribution and licensing system, but others, like Apple, have.
Their OSX system and standard applications are a good example of where the modern operating system is commoditised, and where a vendor can add value. The kernel that underlies their operating system is from the Darwin project which is a forking of the FreeBSD project. Their windowing interface by comparison is proprietary. Not surprising as this is how they differentiate themselves in their market, through their slick interface and ease of usability.
Another aspect of the modern operating system and the ubiquitous of the internet is that no operating system is complete without a web browser. Every operating system comes bundled with one. Apple has taken an interesting route with their Safari browser, using the kHTML project as the core of it and running the highly usable Apple interface over it.
It should be noted that the Darwin project came from a BSD licensed project, while the kHTML project is licensed under the GPL. Both Apple and Microsoft's largest competitor in the operating system area is the Linux distributions. Linux is a kernel, that along with other tools such as bash, Gnome, X and so on combine to form a fully-fledged operating system, which is freely distributable.
Advertisement
This has resulted in numerous distributions, flavours, or versions of Linux based operating systems being present on the internet. From large commercial vendors such as Red Hat and Suse, to more niche distributions such as Slackware, Debian and Yellow Dog, and innovative distributions such as Ubuntu and Gentoo. The BSD operating systems follow a similar path, with FreeBSD being the most popular, NetBSD being platform transparent and OpenBSD being exceptionally security conscious.
The two main licenses are the GPL and the BSD license and its variants, most noticeably the Apache Public License (APL). The GPL places a restriction on the distribution of binary code, requiring that any distribution of binary be accompanied by the software source code. This was a deliberate decision to ensure that software code wasn't lost to predatory proprietary licensing.
The BSD took the opposite route and places no restrictions on distribution of the software in binary or source code form. As a result it can be compiled into, or use with proprietary source code without the entity using it having to distribute the original source code. It is assumed that companies would abuse the access to BSD source code, modifying it, and locking it away behind binary code and proprietary licensing - but this has not happened, not for the BSD licensed project and even with the GPL licensed projects, only in the rarest instances.
The reason is twofold. Popular open-source projects develop source code, features, modifications, improvements and releases at a prodigious rate. The level of productivity in an open-source project with a critical mass of developers is exceptional. Second, once code has been BSD'ed or GPL'ed, and has a vibrant open-source developer and user community behind it, it is commoditised. There is no going back.
It becomes irrelevant to a company if they can lock that software away in binary code and abuse the license. One way to compete in a commodity market is through volume by taking smaller and smaller margins. Open-source projects are available for free from the project's own website, so hoping to make a living from razor thin margins in a volume business is impossible. The other way to survive in a commodity market is through innovation. Again this is impossible for a company, as open-source projects out-innovate, out-collaborate and are more productive for far less cost than a business can achieve.
Recently Eric Raymond argued that the GPL was not needed anymore, stating, "We don't need the GPL anymore. It's based on the belief that open-source software is weak and needs to be protected." In contrast Matt Asay argued that the GPL was the superior license, writing, "The GPL is one of the most exciting, innovative capitalist tools ever created. The GPL breaks down walls between vendors and customers while enabling strong competitive differentiation."
I don't think the license wars matter. I have used all manner of open-source licenses in systems and have contributed to open-source projects. The fact of the matter is, once software gets open-sourced it has become a commodity. The genie is out of the bottle. Whether it is licensed under the BSD, GPL, LGPL, APL or MPL is irrelevant. Once software is commoditised, the most competitive organisational form in that market is an open-source developer and user community. It is an extremely rare business that can beat zero dollars, and the productivity rates of a distributed software developer system.