Open Source Software Article Index for
Open Source
Website Links For
Software
 

Information About

Open Source Software





HISTORY

See Also: Open source movement



The Free Software Movement was launched in 1983. In 1998, a group of individuals advocated that the term Free Software be replaced by open source software (OSS) as an expression which is less ambiguous and more comfortable for the corporate world.1 Software developers may want to publish their software with an Open Source Software License , so that anybody may also develop the same software or understand how it works. Open source software generally allows anybody to make a new version of the software, port it to new operating systems and processor architectures, share it with others or market it. The aim of open source is to let the product be more understandable, modifiable, duplicatable, reliable or simply accessible, while it is still marketable.

The Open Source Definition , notably, presents an open-source philosophy, and further defines a boundary on the usage, modification and redistribution of open-source software. Software Licenses grant rights to users which would otherwise be prohibited by Copyright . These include rights on usage, modification and redistribution. Several open-source software licenses have qualified within the boundary of the Open Source Definition. The most prominent example is the popular GNU General Public License (GPL). While open source presents a way to broadly make the sources of a product publicly accessible, the open-source licenses allow the authors to fine tune such access.

The "open source" label came out of a strategy session held in Palo Alto in reaction to Netscape's January 1998 announcement of a source code release for Navigator (as Mozilla ). A group of individuals at the session included Todd Anderson, Larry Augustin, John Hall, Sam Ockman, Christine Peterson and Eric S. Raymond . They used the opportunity before the release of Navigator's source code to clarify a potential confusion caused by the ambiguity of the word "free" in English . The 'open source' movement is generally thought to have begun with this strategy session. Many people, nevertheless, claimed that the birth of the Internet , since 1969 , started the open source movement, while others do not distinguish between open source and free software movements.

The Free Software Foundation (FSF), started in 1985, intended the word 'free' to mean "free as in free speech" and not "free as in free beer." Since a great deal of free software already was (and still is) free of charge, such free software became associated with zero cost, which seemed anti-commercial.

(OSI) Logo]]
The Open Source Initiative (OSI) was formed in February 1998 by Eric S. Raymond and Bruce Perens . With at least 20 years of evidence from case histories of closed development versus open development already provided by the Internet, the OSI presented the 'open source' case to commercial businesses, like Netscape. The OSI hoped that the usage of the label "open source," a term suggested by Peterson of the Foresight Institute at the strategy session, would eliminate ambiguity, particularly for individuals who perceive "free software" as anti-commercial. They sought to bring a higher profile to the practical benefits of freely available source code, and they wanted to bring major software businesses and other high-tech industries into open source. Perens attempted to register "open source" as a Service Mark for the OSI, but that attempt was impractical by Trademark standards. Meanwhile, thanks to the presentation of Raymond's paper to the upper management at Netscape (Raymond only discovered when he read the Press Release , and was called by Netscape CEO Jim Barksdale's PA later in the day), Netscape released its Navigator source code as open source, with favorable results.


PHILOSOPHY

book cover]]

In his 1997 essay Eric S. Raymond suggests a model for developing OSS known as the Bazaar model. Raymond likens the development of software by traditional methodologies to building a cathedral, "''fully crafted by individual wizards or small bands of mages working in splendid isolation''". He suggests that all software should be developed using the bazaar style, which he described as "''a great babbling bazaar of differing agendas and approaches''."

In the Cathedral, model development takes place in a centralized way.
Roles are clearly defined. Roles include people dedicated to designing (the architects), people responsible for managing the project, and people responsible for implementation. Traditional software engineering follows the Cathedral model. Fred P. Brooks in his book '' The Mythical Man-Month '' advocates this sort of model. He goes further to say that in order to preserve the architectural integrity of a system, the system design should be done by as few architects as possible.

The Bazaar model, however, is different. In this model, roles are not clearly defined. Gregorio RoblesRobles G. (2004). "A Software Engineering approach to Libre Software". Retrieved 20 April 2005 from http://www.opensourcejahrbuch.de/2004/pdfs/III-3-Robles.pdf suggests that software developed using the Bazaar model should exhibit the following patterns:

; Users should be treated as co-developers : The users are treated like co-developers and so they should have access to the source code of the software. Furthermore users are encouraged to submit additions to the software, code fixes for the software, bug reports, documentation etc. Having more co-developers increases the rate at which the software evolves. Linus's Law states that, "Given enough eyeballs all bugs are shallow." This means that if many users view the source code they will eventually find all bugs and suggest how to fix them. Note that some users have advanced programming skills, and furthermore, each user's machine provides an additional testing environment. This new testing environment offers that ability to find and fix a new bug.
; Early Releases : The first version of the software should be released as early as possible so as to increase one's chances of finding co-developers early.
; Frequent Integration : New code should be integrated as often as possible so as to avoid the overhead of fixing a large number of bugs at the end of the project life cycle. Some Open Source projects have nightly builds where integration is done automatically on a daily basis.
; Several Versions : There should be at least two versions of the software. There should be a buggier version with more features and a more stable version with fewer features. The buggy version (also called the development version) is for users who want the immediate use of the latest features, and are willing to accept the risk of using code that is not yet thoroughly tested. The users can then act as co-developers, reporting bugs and providing bug fixes. The stable version offers the users fewer bugs and fewer features.
; High Modularization : The general structure of the software should be modular allowing for parallel development.
; Dynamic decision making structure : There is a need for a decision making structure, whether formal or informal, that makes strategic decisions depending on changing user requirements and other factors. Cf. Extreme Programming .

Most well-known OSS products follow the Bazaar model as suggested by Eric Raymond. These include projects such as Linux , Netscape , Apache , the GNU Compiler Collection , and Perl to mention a few.


UGRAMMERS

The term Ugrammer appears in the book Software Development Rhythms published by John Wiley and Sons and refers to programmers who are also the users of the software they develop. Very often it is the case that the programmers of software are not also its users and as a result many software models and implementation roadmaps put considerable emphasis on communication between users (i.e. customers) and programmers to ensure an adequate description of needs. When programmers are in fact ugrammers, however, this communication problem is somewhat obviated, or at least undergoes a change of nature. Ugramming is common in open source software development projects and offers a number of advantages, mostly revolving around the idea of more efficient communication and clearer specifications. A short list of these advantages would include:

  • Eliminating the programmer-user communication gap

  • A more user-sensitive categorization of must have and nice to have.

  • Reduced documentation

  • Facilitates communication between ugrammers

  • Supports distributed software development

  • Easy to build rapport between ugrammers and users or programmers, making it easier to make use of both programmer and user comments



LICENSING

See Also: Open-source license



Open source licenses define the privileges and restrictions a licensor must follow in order to use, modify or redistribute the open-source software. Open-source software includes software with source code in the Public Domain and software distributed under an open-source license.

Examples of open source licenses include Apache License , BSD License , GNU General Public License , GNU Lesser General Public License , MIT License , Eclipse Public License and Mozilla Public License .

The proliferation of open source licenses is one of the few negative aspects of the Open Source movement because it is often difficult to understand the legal implications of the differences between licenses.


OPEN SOURCE VERSUS CLOSED SOURCE

See Also: Comparison of open source and closed source



The ''open source vs. Closed Source '' (alternatively called Proprietary Software ) debate is sometimes heated.

Making money through traditional methods, such as sale of the use of individual copies and patent royalty payment, is more difficult and sometimes impractical with open-source software. Some closed-source advocates see open-source software as damaging to the market of commercial software. This complaint is countered by a large number of alternative funding streams such as:
  • giving away the software and charging for installation and support (used by many Linux distributions)

  • make the software available as open-source so that people will be more likely to purchase a related product or service you do sell (e.g. OpenOffice.org vs StarOffice )

  • cost avoidance / cost sharing: many developers need a product, so it makes sense to share development costs (this is the genesis of the X Window System and the Apache web server)


Studies about security in open-source software versus closed-source software show that closed-source software have fewer advisories but open-source software usually has less time between flaw discovery and a patch or fix. Advocates of closed source argue that since no one is responsible for open-source software, there is no incentive or guarantee it will be fixed, and there is nobody to take responsibility for negligence. Open-source advocates argue that since the source code of closed-source software is not available, there is no way to know what security vulnerabilities or bugs may exist. However, having the source code for a program could also make it easier for a malicious person to discover security vulnerabilities that they can take advantage of (instead of reporting or fixing them.)


OPEN SOURCE SOFTWARE VERSUS FREE SOFTWARE


See Also: Alternative terms for free software



Critics have said that the term “Open Source” fosters an ambiguity of a different kind such that it confuses the mere availability of the source with the freedom to use, modify, and redistribute it. Developers have used the Alternative Terms ''Free/Open-Source Software'' (FOSS), or ''Free/Libre/Open-Source Software'' (FLOSS), consequently, to describe Open Source software which is also free software.


There have been instances where software vendors have labeled Proprietary Software as “Open Source” because it interfaces with popular OSS (such as Linux). Open Source advocates consider this to be both confusing and incorrect.

There is also a graphic form of the trademark, shown at right.

Open Source software and free software are different terms for software which comes with certain rights, or freedoms, for the user. They describe two approaches and Philosophies towards free software. ''Open Source'' and ''free software'' (or ''software libre'') both describe software which is free from onerous licensing restrictions. It may be used, copied, studied, modified and redistributed without restriction. Free software is not the same as Freeware , software available at zero price.

Free software licenses are not written exclusively by the FSF. The FSF and the OSI both list licenses which meet their respective definitions of free software. Open Source software and free software share an almost identical set of licenses. One exception is an early version of the Apple Public Source License , which was accepted by the OSI but rejected by the FSF because it did not allow private modified versions; this restriction was removed in later version of the license. There are now new versions that are approved by both the OSI and the FSF.



OPEN SOURCE VERSUS SOURCE-AVAILABLE


Although the OSI definition of "open-source software" is widely accepted, a small number of people and organizations use the term to refer to software where the source is available for viewing, but which may not legally be modified or redistributed. Such software is more often referred to as ''source-available'', or as '' Shared Source '', a term coined by Microsoft in opposition to open source.

  Last Vance
  First Ashlee
  Author-link Ashlee Vance
  Date 2007-07-25
  Title SugarCRM trades badgeware for GPL 3
  Periodical The Register
  Url http://wwwregdevelopercouk/2007/07/25/sugarcrm_gpl3/



DEVELOPMENT TOOLS

In OSS development the participants, who are mostly volunteers, are distributed amongst different geographic regions so there is need for tools to aid participants to collaborate in source code development. Often these tools are also available as OSS.

Revision Control systems like Concurrent Versions System (CVS) and later Subversion (svn) are examples of tools that help centrally manage the source code files and the changes to those files for a software project.

Utilities that automate testing, compiling and bug reporting help preserve stability and support of software projects that have numerous developers but no managers, quality controller or technical support. Building systems that report compilation errors among different platforms include Tinderbox . Commonly used Bugtracker s include Bugzilla and GNATS .

Tools like Mailing Lists and Instant Messaging provide means of Internet communications between developers. The Web is also a core feature of all of the above systems. Some sites centralize all the features of these tools as a Software Development Management System , including GNU Savannah , SourceForge , and BountySource .


PROJECTS AND ORGANIZATIONS



EXAMPLES

For an extensive list of examples of open source software, see the List Of Open Source Software Packages .


SEE ALSO




NOTES





FURTHER READING

  • Lui, K.M. and Chan, K.C.C. (2008) Software Development Rhythms: Harmonizing Agile Practices for Synergy, John Wiley and Sons, ISBN 978-0-470-07386-5

  • Mikko Välimäki, ''The Rise of Open Source Licensing: A Challenge to the Use of Intellectual Property in the Software Industry'', Turre Publishing (2005) download PDF file (free) or order hard copy from publisher



EXTERNAL LINKS