Tuesday, May 18, 2010

Day 5 Reading & Reflections

This day's reading is a continuation of day 4's reading. Recall, that last day's readings covered the GNU based licensing models (LGPL,GPL,AGPL). We now explore other free and/or open source licenses, and look at the community's take on such licenses. The following are the selected readings for this day:
  1. BSD License
  2. Open Source Voices : The Revenge of the Hackers
  3. Open Source Voices : The Open Source Definition
  4. Why Open Source Misses the Point of Free Software (FSF)
  5. Categories of Free and Non-Free Software
  6. It's Time to Talk About Free Software Again
The BSD license is a commonly used license in the open source world. The license was first used in 1980 by the University of California at Berkeley, as part of their Berkeley System Distribution (BSD) of the UNIX Operating System.

There are very limited restrictions imposed with the license. In essence, if you distribute a BSD licensed work, you must include the original copyright notice, a disclaimer of liability (i.e. you cannot sue the developer(s) if the application does not do exactly what you expect) and that credit should be given to the authors of the work (i.e. you cannot claim this work as solely your own). Some versions also protect the Trademarks of the BSD project, so that you cannot use the project's trademark as your own when you create your own version of the project. It is also possible to combine the BSD license with other licenses (free or otherwise), as was the case with BSD Unix, where the BSD components were licensed under the BSD license, and Bell Lab's components were licensed under a different license.

A benefit or disadvantage depending on whether you are a software maker, or part of the open source community, is that this license is extremely permissive in what you can do. Recall that in the GPL, you must distribute any changes you made to the work under similar licensing as the GPL, should this solution be distributed outside your organization. However, with the BSD based licenses, you can take work licensed under the BSD license, make modifications (trivial or otherwise) and use/distribute the application without having to distribute the source. In other words you can take something that is in the public domain and make it proprietary, as copyleft isn't implemented at all.

While the GPL license is by far the more most popular free license out there, a lot of important work is licensed under the BSD license, especially in the operating system space. There is no one, "right license," just as there is no one, "silver bullet," to software development methodologies/paradigms. Some people may find the GPL license too restrictive for their use and opt for the BSD license. Others may find the BSD license less free than the GPL, and hence opt for the GPL. In any event, the open source community benefits from having a variety of choices for developers to choose from which support some degree of freedoms rather than having a rigid licensing system that cannot accommodate the needs of the entire community.

Switching gears for a moment, there is a stereotype in some parts of society that hackers are clever developers who cannot gather the resources and skills in their community necessary accomplish large, ambitious goals that typically require the resources of a team of hundreds of developers working together. In fact as was mentioned before, Larry Constantine in his book, The Peopleware Papers, continually talks about the Code Cowboy, the mythical developer who can accomplish large feats in development that would normally take years to accomplish with a team of skilled developers in the garage of his parent's house. As Fred Brooks writes in the Mythical Man Month, in reality few systems of large scale are built by a lone developer.

This brings me to Brook's law, which states that as the number of people working on a software project increases, the amount of complexity and interactions increases by N squared. Most software companies have proven that for large software projects, this law holds. What I find interesting, and what The Revenge of the Hackers article points out, is that for many open source projects, this law does not hold. For some reason the immense collaborative power of developers globally creating and improving open source projects, can develop high quality solutions which often times is delivered on time. It mentions reading the Cathedral and the Bazaar, for more information on this phenomenon. It is this article which later inspired Netscape to release the source code to its browser when it was under threat from Microsoft's Internet Explorer, which threatened to destroy open standards. The implications of this announcement for the open source community, is that it shed light on the community. If the Netscape experiment of open sourcing their browser turns out to be a success, it may prove that the open source model is a viable business model.

It was from the direct progress made with open sourcing the Netscape browser, and the publishing of the Cathedral and the Bazaar, that the free software community realized the importance of effective marketing. In February of 1998, members of the free software community met in person at the VA Research headquarters to design an effective marketing campaign. The first order of duty was to find a better name to describe the movement, as the term used to describe their community, the, "free software," community was ambiguous. Free software to an ordinary person, could either mean free as in freedom, or free as in beer (the former being the correct definition). In addition, there was a negative association of free software as being connected to communism, and anti-intellectual property, which in reality it isn't (but the FSF implied). The point of the marketing campaign would be to stress the positive aspects of the free software movement, such as the lower cost and and high reliability. It was from this brainstorming session that the term open source was devised to describe the broad free software community and a marketing campaign was devised to rebrand the free software community.

There were a set of core themes that the open source campaign was defined by:
  • evangelize open source top-down, as it is easier to convince a manager to switch to open source then it is to have developers/engineers convince their managers
  • use Linux as the poster-child for effective open source work, as it the most widely known open source project
  • Convince the Fortune 500 to use open source, as they drive the direction of software
  • Use business media to make the the business case for open source, capturing Wall Street
  • Educate the community in guerilla marketing techniques to have a unified marketing message
  • Create a mark that open source software can use, to create a brand association for open source
They (the open source community) went on to implement each of these themes/goals. Some major achievements of that time included major software companies announcing they would port their software to Linux (a free platform), with the Oracle and Informix being one of the first large software companies to announce doing so. In terms of media coverage, an internal Microsoft letter was uncovered called the "Halloween Documents," which exposed Microsoft's fear of the open source world and the steps they would take to stop the movement. This of course resulted in media coverage for many of the large business publications for many weeks in November. In addition, there was adoption of Linux and open source solutions from movie studios using it to render scene for the movie Titanic, to University's creating inexpensive compute clusters. Development of Linux progressed rapidly that year, implementing things such as symmetric multiprocessor support.

It then goes on to make several prediction of the future of the open source and for that matter computer industry:
  • Explosion in the number of open source developers
  • Linux will dominate in the open source OS world out placing BSD and other free OSes
  • More software vendors will commit to supporting free solutions such as Linux
  • Open source technology will be brought in through the backdoor of Microsoft shops
  • The market share of proprietary will fade away
  • Microsoft's foray into the server world will fail (Windows 2000)
It then goes on to mention that there is a good chance that Microsoft will die, as people switch over to free solutions, and ditch Windows on the desktop. However, he mentions that to displace Microsoft it must not only beat Microsoft on technical merits (which it clearly can do), but also on ergonomics and interface design. Quite simply Linux wasn't and perhaps still isn't usable, and the operating system needs to be made so that your aunt or grand mother can use it, a key selling point of Windows.

The Open Source Definition is essentially an adaption of the Debian Social Contract, and the Debian Free Software Guidelines to make it applicable to the larger open source community. It is not a license, but rather a set of guidelines used to determine whether a license is considered open source. At the heart of the open source definition, is the guarantee of the following rights:
  • The right to make copies of a program, and distribute those copies
  • The right to have access to the software's source code
  • The right to make improvements to the software
It is important to note that that the open source definition is not exactly the same as the free software definition. For instance, the open source definition lists the GNU GPL,BSD, X Consortium, and Artistic licenses as being examples of licenses that comply with the open source definition. As we have seen, the GPL and the BSD licenses are quite different from each other, yet they still meet the requirements of the open source definition.

The reason why the open source definition was created as mentioned before was to have a standard to compare software licenses against to determine whether they should be considered part of the open source community. Unfortunately there have been in the past to make the open source definition effectively ambiguous so that non-free software can be classified as open source. For instance, there have been non-free software that has lured open source work to leverage proprietary packages, such as Qt and the KDE desktop manager built around it.

Let us now look at software licenses. In general, we can place software licenses into one of two broad categories, it's either Proprietary or a Free Software license. However, there is also a grey area that exists where the software depending on how it is licensed and used could be considered either free or proprietary software.

The Free Software class of licenses include Free Software licenses that follow the free software definition, open source which is similar to free software licenses (but allows for further restrictions), and public domain software. From this, software delivered under this license model can be further grouped into one of two groups, copyleft or noncopyleft. As a reminder, copyleft is the principle that all copies of the software (including derivative work) carry exactly the same license as the original work. The GPL is probably the most notable example of a free license that implements copyleft. Public domain software, on the other hand is a special case of non-copyleft software, as software released in the public domain carries no copyright protections or licenses, and so users are allowed to claim whatever rights or licenses they want to the software work. In effect noncopyleft licenses allow companies to make their own versions of the free software be distributed and licensed as nonfree.

On the other hand, non-free software is software where redistribution and modification is either effectively prohibited or requires you to ask the author for permission. There are several types of proprietary software licenses out there namely freeware and shareware. Freeware essentially refers to software where there is no cost to redistribute and use, although other rights are limited, such as access to source code. Shareware is similar to freeware except users are required to pay a fee for the subsequent use of redistributed software.

There is a third area of licenses which forms a grey area in the free software vs proprietary software battle and they encompass private and commercial software. Private software is software that is developed and distributed for private use. While the free software community would prefer developers to distribute their source code to the community, it may be possible to make private software be compatible with the principles of free software, especially if the users of said software have all the rights afforded to them of free software. Commercial software, may be considered free software, if the software being distributed by the software company follows the principles of the free/open source definition. As mentioned earlier there is nothing in the free software definition that explicitly states that software makers cannot charge for their software, so long as end users and developers have the freedoms afforded to them by the free software definition. On the other hand there are plenty of proprietary software companies that sell commercial software which is not-free, that the source code isn't freely being distributed, or other rights are being reserved or limited.

No comments:

Post a Comment

 
Creative Commons License
CS889 Readings by James Simpson is licensed under a Creative Commons Attribution-Noncommercial 2.5 Canada License.
Based on a work at j2simpso.blogspot.com.
Permissions beyond the scope of this license may be available at j2simpso at uwaterloo dot ca.