an introduction to open source software

4
www.redefinedhorizons.com An Introduction To Open Source Software An Introduction to Open Source Software This article provides an introduction to open source software. It explains the basic concepts behind open source software by (1) explaining what a software license is, and (2) by comparing the process of open source software development with the proprietary software development process. The article concludes by examining some of the benefits and challenges of developing open source software and explains the common misconception that term “open source software” and the term “free software” refer to the same thing. Before a the term “open source software” can be defined in this article, we need to (1) understand what a software license is, and (2) consider a brief explanation of the traditional method of developing proprietary software. Understanding Software Licenses If an organization designs a program for resale, it typically charges a licensing fee to use the program. When you pay for a closed-source or proprietary program developed under this traditional method you are not buying the program or any of the code that it is constructed from. You are simply paying for a license to use the software. This is an important concept. The company that sells you the license can impose all sorts of restrictions on your use of the software. Common restrictions include restricting your ability to copy the program for multiple users, restrictions on your ability to transfer the license you purchased, and restrictions on the length of time your license is valid. In some ways a traditional closed-source computer program license is like a driver's license. Driving is a privilege that you are licensed to enjoy. At any time, and for a number of different reasons, this license can be revoked. It also comes with a set of restrictions. For example: You can't give your driver's license to someone else, and in most places you can't drive while under the influence of drugs or alcohol. The Proprietary or Closed-Source Software Development Model In the traditional closed-source software development model a company (or other organization, like a university) hires a programmer (or group of programmers) to write the source code (or computer instructions) for a computer program. The salaries of the programmers are paid by the company, and the company owns all (or the majority) of the rights to the computer program designed by the programmers. This includes the program itself, the user manual for the program, sample data files for the program, the program name, logo, trademark, and other things related to the program. In this model the company has the ultimate control over the use, appearance, and destiny of the program. Most computer programs developed in the traditional way are considered "closed source". That means that only the organization that writes the software (or organizations they choose to collaborate with) have access to the source code (or computer instructions) that the program is created from. Oftentimes this source code is guarded like a national security secret. This is understandable, as an organization may have invested thousands of dollars or 2010-07-12 Page 1 of 4 Document Version 01.00.00

Upload: redefined-horizons

Post on 11-Mar-2016

214 views

Category:

Documents


0 download

DESCRIPTION

Provides a brief introduction to open source software and open source software licenses.

TRANSCRIPT

Page 1: An Introduction to Open Source Software

www.redefinedhorizons.com An Introduction To Open Source Software

An Introduction to Open Source Software This article provides an introduction to open source software. It explains the basic concepts behind open source software by (1) explaining what a software license is, and (2) by comparing the process of open source software development with the proprietary software development process. The article concludes by examining some of the benefits and challenges of developing open source software and explains the common misconception that term “open source software” and the term “free software” refer to the same thing. Before a the term “open source software” can be defined in this article, we need to (1) understand what a software license is, and (2) consider a brief explanation of the traditional method of developing proprietary software. Understanding Software Licenses If an organization designs a program for resale, it typically charges a licensing fee to use the program. When you pay for a closed-source or proprietary program developed under this traditional method you are not buying the program or any of the code that it is constructed from. You are simply paying for a license to use the software. This is an important concept. The company that sells you the license can impose all sorts of restrictions on your use of the software. Common restrictions include restricting your ability to copy the program for multiple users, restrictions on your ability to transfer the license you purchased, and restrictions on the length of time your license is valid. In some ways a traditional closed-source computer program license is like a driver's license. Driving is a privilege that you are licensed to enjoy. At any time, and for a number of different reasons, this license can be revoked. It also comes with a set of restrictions. For example: You can't give your driver's license to someone else, and in most places you can't drive while under the influence of drugs or alcohol. The Proprietary or Closed-Source Software Development Model In the traditional closed-source software development model a company (or other organization, like a university) hires a programmer (or group of programmers) to write the source code (or computer instructions) for a computer program. The salaries of the programmers are paid by the company, and the company owns all (or the majority) of the rights to the computer program designed by the programmers. This includes the program itself, the user manual for the program, sample data files for the program, the program name, logo, trademark, and other things related to the program. In this model the company has the ultimate control over the use, appearance, and destiny of the program. Most computer programs developed in the traditional way are considered "closed source". That means that only the organization that writes the software (or organizations they choose to collaborate with) have access to the source code (or computer instructions) that the program is created from. Oftentimes this source code is guarded like a national security secret. This is understandable, as an organization may have invested thousands of dollars or

2010-07-12 Page 1 of 4 Document Version 01.00.00

Page 2: An Introduction to Open Source Software

www.redefinedhorizons.com An Introduction To Open Source Software

man hours into the creation of a computer program. It is important that they protect this investment. If competing programmers obtain a copy of the source code for a program, they could reconstruct it and avoid paying license fees (or complying with the license restrictions) of the computer program's creator. A Simple Definition of Open Source Software Now that we have a basic understanding of software licenses and have talked about the closed-source software development model for a minute, let's consider what makes open source software different. Open Source Software is software whose source code (or computer instructions) are distributed freely and openly. This definition of open source software is evident in the name. The term "open" denotes a degree of freedom or openness, while the term "source" refers to the source code of the program. There are many other aspects of software and software development that can be included in the term “open source software” (such as software user and developer communities and freely available user and programmer documentation), but when you boil the term down to its essence, an open source computer program is one whose source code is freely distributed. A more detailed definition of open source software is available from the Open Source Initiative. "Open Source" software is similar to "Free Software" and the two types of software can be easily confused. Not all software that could be defined as open source could be defined as free software. See the section below for more details on the differences between the two types of software. What are the benefits of the open source software development process? If organizations can make money (a lot of money) selling computer programs, why would anyone release software as open source? This is an excellent question. There are a number of advantages to releasing the source code for a computer program. Consider some of these advantages: Open source programming allows the users of a computer program to participate in the design, improvement, maintenance, and documentation of the program. This means the computer program will be more responsive to the needs of the program's user community. This is a contrast to the closed source software development model, in which a group of professional programmers is paid to develop a computer program. In many cases the programmers may be very unfamiliar with the purpose of the program they are creating, or the data that will be produced or manipulated in the program. When an organization releases a program as open source, programmers from other organizations are more likely to invest their own time and energy in improving the program. This allows an organization to accomplish tasks that it would not be able to do on its own.

2010-07-12 Page 2 of 4 Document Version 01.00.00

Page 3: An Introduction to Open Source Software

www.redefinedhorizons.com An Introduction To Open Source Software

Open source programming allows for a broader base of support. That means that the organization creating and maintaining an open source program can draw on the expertise of other programmers and users from around the world. A company that develops software using the traditional, closed-source method is limits itself to the abilities, talents, and experience of the group of individuals it chooses to grant access to the program's source code. What are the challenges of the open source software development process? Open source software development is not a panacea that will eliminate all the problems organizations face with software development. Some of the challenges faced in the open source software development process are: The communities that develop open source software often lack strong leadership. Aspects of software development that do not require working directly with the source code can suffer from neglect. These aspects include documentation, branding, and marketing. The ability to easily “fork” or duplicate a program’s source code can lead to fractured software development communities and wasted duplicate programming efforts. The large and widespread communities that form around successful and popular open source software projects must often deal with cultural and language barriers. Open source projects often lack the funding and resources of proprietary software projects. It can be difficult for users of open source software to find the technical support and other services related to the software project that they need. Key Differences Between Open Source Licenses A plethora of open source licenses exist today. The Open Source Institute has 66 open source licenses listed on its web site, while the Free Software Foundation lists 42 open source licenses compatible with the GPL, another 38 open source licenses that are not compatible with the GPL, and 27 licenses that claim to be open but which are not considered to be by the foundation. The variety of open source licenses can cause confusion among the users, attorneys, programmers, and other people that must deal with software licensing issues. Understanding the factors that differentiate open source licenses from one another can reduce this confusion. There are two (2) main factors that differentiate most open source software licenses. The first factor is how the license governs the use of programming libraries or external modules of source code within the subject program if they are released under a different license, even an open source license. For example, if a software library is released under the GPL open source license, you will not be able to use the software library with a program released under a license that is not compatible with the GPL, even if that license is open source. This is because the GPL license provides the software released under the license with a “viral” characteristic that requires programs using it to also be released under an open source license. This is not always possible.

2010-07-12 Page 3 of 4 Document Version 01.00.00

Page 4: An Introduction to Open Source Software

www.redefinedhorizons.com An Introduction To Open Source Software

2010-07-12 Page 4 of 4 Document Version 01.00.00

The second factor deals with requirements or restrictions placed on the distribution of the program or its source code. For example: Some open source licenses require that you release any changes you make to the source code of the subject program if you distribute the source code or executable program to third parties. Open Source Software Versus Free Software People often use the term “open source software” with the term “free software”. This is a mistake. The terms are distinct. Open source software can be obtained by users for free, or without the payment of money. However, nothing prevents open source software form being sold for money. Software can be given away for free, but that doesn’t make it open source. Some of the confusion surrounding these two (2) terms results from the association of the work free with “open source software”. In most cases, the word “free” used in this context refers to the freedoms associated with open source software (like the freedom to copy and redistribute the program’s source code) and not the price paid for a license of the software. This concept is often explained as software that is “free as in freedom and not free as in ‘free beer’”.