October 29, 2008

Open source usually refers to software that is released with source code under a license that ensures that derivative works will also be available as source code, protects certain rights of the original authors, and prohibits restrictions on how the software can be used or who can use it.

In this article:

Open Source vs. Commercial Software

How Open Source Software Is Developed

Differing Definitions

Free Software and Open Source

Open Source Institutions

Answering the question What is open source? used to be a lot simpler than it is today.

Open source began as, and for the most part still is, software created by a community of people who are dedicated to working together in a highly collaborative and evolutionary way.

Open Source vs. Commercial Software

The most important difference between software created by the open source communities and commercial software sold by vendors is that open source software is published under licenses that ensure that the source code is available to everyone to inspect, change, download, and explore as they wish. This is the essential meaning of open source: the source code–the language in which the software is written and the key to understanding how the software works–can be obtained and improved by anyone with the right skills.

More precise definitions extend this basic concept by adding provisions concerning derivative works, the rights to use the software for any purpose, the rights of the original author, and prohibitions against discrimination.

How Open Source Software Is Developed

For those new to the idea of open source or unfamiliar with the way software gets developed, here’s how it works most of the time:

One or more developers–meaning people who have the skills to create software–get an idea about creating software to solve a problem.

The developers start writing code to create a solution. This is frequently called “scratching an itch.”

The developers put this code where other developers can find out about it, download it, and play with it. There are many locations, such as SourceForge.net, where people post their projects.

Usually the source code is published under one of several popular open source licenses that ensure that the source code and any derivative works remain open source.

Through an informal process of sharing ideas, fiddling with each others’ code, and trial and error, the software gets better and better, sometimes changing direction to solve new problems as new people discover the software.

At some point, the software gets finished or doesn’t. It becomes popular, stays obscure, or fades away. Programs like Linux and Apache have had thousands of contributors. Other projects have been created by one or two people.

As time goes on, developers come and go, and projects become active or dormant.

A huge amount of amazing software has been created through this loose process. While much of open source development has focused on creating tools for software developers, an increasing amount of effort is being put into creating programs to solve less technical problems like publishing blogs or keeping track of skydiving activity.

Differing Definitions

While this explanation is sufficient for most purposes, such a simple answer is really no longer accurate. The right answer today depends on your perspective. To really understand the question What is open source? in a complete and useful way, we must know who is asking the question. For example, if we asked Linus Torvalds, Richard Stallman, or Bill Gates, we might get very different answers. Here’s what open source means to a variety of different groups.

Users of software

For users of software who have the skills to download and install software, open source means choice and freedom.

The choice comes from the huge amount of programs available. Some programs like Firefox (the smoking-hot browser from Mozilla.org) or OpenOffice.org (a suite of word processing, spreadsheet, and related programs) can be downloaded and used by just about anybody. Other open source projects such as Babeldoc or Axkit are mostly useful for software developers.

None of this open source software costs money. Some programs charge subscriptions for support, updates, documentation, or premium versions, but most of those are usable without paying a fee.

The freedom comes from the fact that the source code is available. If you want to change something, then you can, if you have the right skills. Only a handful of the people who download and use open source ever actually change it. Most use it as intended, but they have the freedom to modify it if they want.

Developers and Engineers

For developers and engineers, open source has many additional meanings. To those who found a successful project, open source can mean fame, recognition, and sometimes even money from consulting or other sources.

Other developers see in open source a masterful software development methodology founded on the virtues of collaboration, incremental evolution, and working code.

For most developers, open source is a both a source of tools to help solve problems and a constant source of exciting new things to learn.

IT Professionals

For information technology professionals, open source represents all the benefits to developers plus a boatload of business advantages. IT departments use open source to avoid buying commercial software, to replace it, and to gain power in negotiations. In using open source, IT departments can save money or support their businesses better.

Commercial Software Vendors

Most commercial software vendors love open source like Linux or the MySQL database when it helps make it easier to sell their products. The same vendors may then hate open source when it competes.

Companies use open source in many different ways. Some build entire products on open source and then release the source code as a marketing vehicle. SugarCRM and Compiere are two companies that follow this model. Open source becomes a marketing technique in that case.

Some companies try to imitate the collaborative development methodologies of open source on their teams. Collabnet has created tools that help companies develop software using lessons learned from open source projects.

Commercial vendors sometimes release proprietary software into the marketplace to either create a friendly environment for their products or to threaten a competitor by creating a free alternative. IBM made its Eclipse development environment open source, which has created a thriving community.

Commercial software vendors also sometimes release as open source products that are old or ailing to breathe new life into them by trying to form a developer community. Netscape was the first to do this, and many have followed. Commercial software vendors also release products as open source to attempt to relieve themselves of the work of supporting the projects without leaving users in the lurch.

Entrepreneurs, Investors, and Such

Entrepreneurs have put open source to work building companies or products. Yahoo, Amazon, and Google all make heavy use of open source. A growing number of venture-funded companies are built using open source or offer services related to open source. Some companies have even been known to publish books and run conferences related to open source.

Free Software and Open Source

Now that you are really hep to what open source means, it is time for some inside baseball. Many people do not know that the term open source came out of a sort of schism. The roots of open source as it exists today started in a concept created by Richard Stallman called free software. The Free Software Foundation and the GNU project, which Stallman founded, created much of the legal and software infrastructure that made possible projects like Linux and most of the rest of the open source that exists today. Stallman has tried to emphasize this by asking that people refer to the operating system as GNU/Linux.

Richard Stallman is famous for his brilliance, his strong opinions, and for the saying “free software is free as in speech, not as in beer.” But, like many mavericks, Richard Stallman has rubbed some people the wrong way. Some felt that his strident attitudes about certain subjects, like intellectual property, and his leadership style were driving people away from using free software. A group of people including Eric Raymond, Tim O’Reilly, and several others came together and started using the term open source instead of free software. This took hold, although many people use the terms separately, or use the combined term free and open source software, abbreviated as FOSS.

Open Source Institutions

The rise in importance and widespread use of open source has resulted in the creation of several sorts of institutions that seek to play various roles. The institutions may seek to promote a specific project or practice, or to be watchdogs or certifiers, or to promote a philosophy or an approach to open source.

The Free Software Foundation is the mother of all open source institutions, and it plays pretty much every role mentioned. Through the GNU project, code is created, such as the GNU C compiler, the emacs editor, and many other famously useful programs. The GNU General Public License is the most commonly used open source license. And the foundation is quite active in promoting its values in the realms of intellectual property and patents.

Open Source Initiative published the Open Source Definition–an attempt to precisely define open source–and certifies that the growing number of licenses under which open source is published conforms to the definition. The Open Source Initiative also provides educational and advocacy material on its web site related to open source issues.

Many other institutions are focused on particular projects but also serve many different roles, including:

Open Source Development Labs (OSDL)
Home to Linus Torvalds, creator of Linux, the OSDL, founded by large companies like IBM and Intel but with a large external membership, seeks to promote the development of Linux and its use in enterprise computing.

Apache Software Foundation
Umbrella organization for the Apache project that developed the Apache HTTP Server and many other projects.

Perl Foundation
A foundation dedicated to promoting the development, education, and use of the Perl language.

Open Source Applications Foundation
A foundation started by Mitch Kapor that is developing Chandler, an open source personal information manager for email, addresses, and calendar.

Mozilla.org
Originally the home to the source code initially released as open source from Netscape, and now the home to many popular projects such as the Firefox browser. The Mozilla Foundation provides oversight to Mozilla.org.

OpenOffice.org
OpenOffice.org is the open source version of Star Office, a suite of programs for word processing, spreadsheets, and presentations, often called an office suite. Star Office was started in the mid-1980s and was purchased by Sun Microsystems in 1999.

All sorts of other institutions such as universities, standards bodies, and the like have important connections to the open source community.

Now that you know what open source is, perhaps it is time for you to start a project yourself.