The most basic definition of open source software
is :
software for which the source code is distributed along with
the executable program, and which includes a license allowing anyone
to modify and redistribute the software.
Source code is the actual
instructions which programmers write to create a piece of software,
the "recipe" for the program.
Once a program has been "compiled" into
a form which can be installed and run on a computer, its source
code is irretrievable.
It is practically impossible to make changes
to a program without having a copy of its source code.
If a program's
license includes the right to modify the program, this right is
meaningless unless the source code is readily available.
Actual licenses for OSS vary between different companies and development
projects, but they have certain characteristics in common:
- Allowing free redistribution of the software without royalties
or other fees to the author.
- Requiring that source code be distributed
with the software or otherwise made available for no more
than the cost of distribution.
- Allowing anyone to modify the software
or derive other software from it, and to redistribute the
modified software under the same
license terms.
|
In addition to its legal definition, another distinction
between OSS and proprietary software is the way in which it is
developed.
Proprietary software is created by a relatively small
group of developers within a particular company, often working
under deadline pressure.
They complete a program and then try to
remove as many flaws (software errors or "bugs," and
security "holes") as possible before the software goes
to market.
Any flaws which remain after shipping time become the
consumerØs problem, leading to lost work and frustration.
Purchasers of proprietary software become involuntary testers.
What's more, if users find a flaw, even if they know how to solve
it, the software license prohibits them from making the fix themselves.
Open source software, in contrast, is often developed by loosely
organized communities of programming enthusiasts, collaborating
via the Internet.
Anyone with an interest and some requisite degree
of ability is welcome to contribute sections of the program or
to look for errors in existing sections.
Because no one is excluded
from the development process, potentially hundreds of people can
contribute to a project, providing a diverse group of talents and
techniques.
If a particular company has a financial interest in
the success of an open-source project (through strengthening its
brand name, increasing demand for related products, or through
sales of technical support), they will often hire programmers to
work on the project.
Other contributors (and for some projects,
all contributors) may be individuals working in their spare time,
out of interest rather than for compensation.
Open source software is economically viable and presents numerous
opportunities for profit.
This seems counterintuitive, since the
availability of source code allows the user to obtain a piece of
software at no cost.
But many companies have already realized substantial
profit from their OSS efforts.
Both individuals and businesses are willing to pay
for this convenience. Additionally, the software itself retains
some economic value even if it is given away for free.
The Open
Source Initiative web site explains this way: "If having a
program written is a net economic gain for a customer over not
having it written, a programmer will get paid whether or not the
program is going to be free after it's done."
|