Open-source software
is any computer software that's distributed with its source code
available for modification. That means it usually includes a license for
programmers to change the software in any way they choose: They can fix
bugs, improve functions, or adapt the software to suit their own needs.
Open-Source Software Criteria
The Open Source Initiative (OSI), a global nonprofit founded in 1998,
acts as a leading authority on OSS. Its definition of open-source
software includes ten criteria, relating to matters such as:
- Software redistribution
- Source code availability and integrity
- Distribution and properties of licenses
- Derived works
- Anti-discrimination
Licenses
Different licenses allow programmers to modify the software with
various conditions attached. According to the Black Duck KnowledgeBase, a
database of some two million open source projects, five of the most
popular licenses are:
- MIT License
- GNU General Public License (GPL) 2.0
- Apache License 2.0
- GNU General Public License (GPL) 3.0
- BSD License 2.0 (3-clause, New or Revised)
When you change the source code, OSS requires the inclusion of what
you altered as well as your methods. The software created after code
modifications may or may not be made available for free.
Commercial Software
Commercially available software, aka commercial or proprietary
software, doesn’t give access to its source code because the software is
someone else's intellectual property. As a result, users often pay for
it. OSS, on the other hand, is a collaborative effort; The software is
shared intellectual property among all who have helped develop or alter
it.
Free Software
Although the terms are often used interchangeably, OSS is slightly
different from free software. Both deal with the ability to download and
modify software without restriction or charge. However, free software—a
concept developed in the 1980s by an MIT computer science researcher,
Richard Stallman—is defined by four conditions, as outlined by the
nonprofit Free Software Foundation. These "four freedoms" emphasize the
ability of users to use and enjoy software as they see fit.
In contrast, the OSS criteria, which the Open Source Initiative
developed a decade later, place more emphasis on the modification of
software, and the consequences of altering source code, licensing, and
distribution.
The two overlap; some would say the differences between OSS and free
software are more philosophical than practical. However, neither should
be confused with freeware. Freeware usually refers to proprietary
software that users can download at no cost, but whose source code
cannot be changed.
Advantages
While its lack of cost is a key advantage, OSS has several additional benefits:
- Its quality can be easily and greatly improved when its source code is passed around, tested, and fixed.
- It offers a valuable learning opportunity for programmers. They can apply skills to the most popular programs available today.
- It can be more secure than proprietary software because bugs are identified and fixed quickly.
- Since it is in the public domain, and constantly subject to updates, there is little chance it can become unavailable or quickly outmoded—an important plus for long-term projects.
Popular Types
Open-source technologies helped establish much of the internet.
Furthermore, many of the programs in use every day are based on
open-source technologies. Cases in point: Android OS and Apple’s OS X
are based on the kernel and Unix/BSD open-source technologies,
respectively.
Other popular open-source software is:
- Mozilla's Firefox web browser
- Thunderbird email client
- PHP scripting language
- Python programming language
- Apache HTTP web server
Developers
OSS projects are collaboration opportunities that improve skills and
build connections in the field. Areas that developers can work on
include:
- Communication tools. Email, real-time messaging, forums, and wikis help developers to find solutions or bounce ideas off each other.
- Distributed revision control systems. When multiple developers in different geographical locations modify data and files, these systems manage the different versions and updates.
- Bug trackers and task lists. These features allow large-scale projects to monitor issues and keep track of their fixes.
- Testing and debugging tools. These features automate testing during system integration and debug other programs.
The Bottom Line
Open-source software is an alternative to proprietary software.
Participating in an OSS project can be a pathway to building a career in
software development, allowing programmers to hone their skills by
working on the biggest software programs in the world. Facebook, Google,
and LinkedIn all release OSS, so developers can share knowledge,
innovate solutions, and contribute to stable, functional products.