Section 1.2. Open and Closed Software Development


1.2. Open and Closed Software Development

Traditionally, software development is closed. This means that whether or not users are charged for the actual product, the source files that are used to create the product are confidential. Sometimes you can purchase the source, but that's extra.

Open software development refers to a number of different ideas about software development. The best known one is that the source files for the product are openly and freely available, so customers can change the source files and then rebuild the product themselves, at least in theory. The source files may also be free, as in costing nothing. Many open source projects also allow anyone to redistribute the source files, subject to the requirement that if you make changes, you must make those changes publicly available. If you continue to distribute the changes you make to a product, then you may have produced a fork of the project, and the product will have become two different products. Forks are an accepted part of open software development.

Examples of some well-known open source software products are shown in Table 1-1.

Table 1-1. Major open software projects

Software

URL

Description

Apache

http://www.apache.org

Most of the world's web sites run on the Apache web server.

GCC

http://gcc.gnu.org

The most widely used compiler for C and other languages.

GNU/Linux[1]

http://www.linux.org

The best-known open source Unix-based operating system.

Mozilla

http://www.mozilla.org

The Firefox web browser and many other Mozilla projects that grew out of the original Netscape browser.

Perl

http://www.perl.org

Powerful scripting languages, also known as dynamic languages.

Python

http://www.python.org

Tcl

http://tcl.sourceforge.net


[1] The term GNU/Linux is generally used instead of Linux throughout this book, since almost every Linux distribution is shipped with GNU tools.

The idea of open source development was pioneered by the Free Software Foundation, or FSF (http://www.fsf.org), founded by Richard Stallman in 1984; it has produced hundreds of open source products under the banner of the GNU Project (http://www.gnu.org). The FSF prefers to use the term free rather than open for this kind of software.

The Open Source Initiative, or OSI (http://www.opensource.org), was founded in 1998 and describes itself as a marketing program for free software. The OSI tends to distance itself from some of the philosophical positions of the FSF. As might be inferred from the name, the OSI uses the term open for this kind of software. Eric Raymond is one of the best-known people associated with the OSI.

You may also come across the compromise acronym F/OSS for "free/open source software," or the terms gratis for "free as in beer" (no cost) and libre for "free as in freedom."


There are a confusing number of different licenses for open source software. The best-known one is the GNU General Public License (GPL) from the FSF. The most common confusion about the GPL seems to be whether using source files that were distributed under the GPL means that the rest of a product's source files must be made publicly available. It all seems to depend on how the GPL-licensed source files are used by the proprietary part of the product. I am not a lawyer, but there's a useful book on this subject by someone who is: Understanding Open Source and Free Software Licensing, by Andrew M. St. Laurent (O'Reilly).

Regardless of whether a project is open or closed, each of the activities listed earlier in Section 1.1 is present. Customers for closed software are people and companies who have paid money to use the product. Customers for open software are people and companies who use the product, and they may well pay for support. Both kinds of software have to track the different legal licenses used for different parts of the product. Development environments for closed and open software projects often differ only in how much money will be spent on tools.

Although this book contains many references to open source projects and open source tools, creating a good development environment is about choosing the most appropriate tools. Both closed and open source tools are discussed in this book.



Practical Development Environments
Practical Development Environments
ISBN: 0596007965
EAN: 2147483647
Year: 2004
Pages: 150

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net