Open Source
Open Source
Overview
The Open Source community is a movement towards making software available to others.
Those others can be end users, who use the software as-is. Those others can also be
developers who then continue development on the software or integrate it into software of their
own. Open Source software covers a wide area. There are Open Source word processors,
spreadsheets, web browsers, and entire operating systems. Pretty much any sort of software is
available in an Open Source variety.
The Open Source world has a wide variety of licenses available. The Open Source Initiative
currently lists 58 different Open Source licenses (www.opensource.org/licenses/). While 58 is a
large number from which to choose, most of these licenses share a number of features.
Commonalities
All Open Source licenses seek to make code easy and desirable to use and share. To this end,
they have many commonalities:
· They allow bundling. Software may be bundled with other software and this entire bundle
may be either sold or given out for free.
· They do not restrict bundled software. Other software distributed in the bundle need not be
covered under the same license.
· They allow modifications. The software may be modified.
· They allow distributions of modifications. Modified software may be distributed.
· They allow derived works. Creation of derived works that extend the software are allowed.
· They do not discriminate as to recipients or contributors. There are no restrictions on
persons, groups, or fields of endeavor. Anyone can use. Anyone can modify. Anyone can
distribute.
Differences
Again, all Open Source licenses seek to make code easy and desirable to use and share.
Unfortunately, these aims are often in conflict and the different licenses available seek to
reconcile this conflict in different ways.
On one hand, Open Source developers in general want others to be able to use their work,
either as end-users or as developers. On the other hand, Open Source developers want their
work to stay open. That desire may extend to wanting any derivative works created from their
work to also be kept open.
These two desires can be in conflict. A commercial developer may want to use some open
source project as a starting point, but still be able to profitably sell the resulting derivative work,
The balance is between encouraging the adoption and use of software versus ensuring that the
software remains open. Different open source licenses deal with this conflict in three different
ways.
Additionally, the GPL requires that if a distribution is in the form of binary code, then the source
code must either be included or be freely available.
The downside to the GPL is that commercial developers are reluctant to use GPL-ed code
because it requires them to release their derivative works with the same license. Including a
small amount of GPL-ed code in a much larger piece of proprietary software can render the
entire package GPL-ed. If your business is dependent on selling that piece of software, this can
be a huge problem.
The full text of the GPL is available from the Open Source Initiative:
www.opensource.org/licenses/gpl-license.php
Other Issues
The second misconception is that if you modify Open Source software, you must provide it to
others. In fact, the various protections of Open Source software apply only if you decide to
distribute the software. You are, however, under no obligation to distribute the software at all.
You can take a piece of Open Source software and modify it all you like. You can even
incorporate it into your own software. And you are not required to tell anyone at all about it. It's
only if you redistribute your changes that the various license provisions trigger. There is no
Open Source mechanism that requires changes to be returned to the community.
Moderation
While Open Source projects are usually community driven, some amount of moderation is
needed, particularly as projects grow in size. Projects need some entity that provides direction
and prevents projects from proceeding down non-productive avenues. Individuals often direct
even large-scale Open Source projects; however a steering committee may be more
Hosting
Open Source projects generally require an online home where interested parties can access
code and documentation, as well as provide feedback and contributions. Hosts can be as
simple as individual web sites where code is posted. Generally, large projects are hosted on
content and code management systems specifically designed for collaborative development.
Here are two examples.
SourceForge
SourceForge is the world's largest Open Source software development web site. It acts as a
centralized resource for managing projects, issues, communications, and code. It hosts projects
at no charge. SourceForge is geared towards technically adept developers and can be
confusing for newcomers to Open Source development. More information is available at:
sourceforge.net