What is Open Source Software?
A brief explanation of the traditional (or historical) method of developing software is helpful in understanding what open source software is, and how the open source software development model differs from the traditional model.
The Traditional Software Development Model
In the traditional software development model a company (or other organization, like a university) hires a programmer (or group of programmers) to write the 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.
Understanding Software Licenses
If an organization designs a program for resale, it typically charges a licensing fee to use the program. This is an important concept. When you pay for a closed-source 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 foir a license to use the software. 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 privilige 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 alcholol.
Restricting Access To Source Code
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 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 talked about the traditional 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" referes to the source code of the program. There are many other aspects of open source software and open source software development (such as software user and developer communities and freely available user and programmer documentation), but when you boil it all down, an open source computer program is one whose source code is freely distributed.
A more detailed definition of open source software is availabe 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 Model?
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 programmeing allows the users of a computer program to participate in the design, improvement, maintenance, and documentaion 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 traditional 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.
- 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.






Comments
Write New Comment ▼
Write New Comment
Sorry! This knol's owner(s) have blocked you from editing, making suggestions, or commenting here.