What is Open Source Software?

Mozilla Firefox logo
Mozilla's Firefox web browser is an example of a popular piece of open source software. Image courtesy of The Mozilla Foundation

Question: What Is open-source software?

Answer:

Open-source software (OSS) is computer software distributed with its source code available for modification. The software 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. The Open Source Initiative (OSI) is a leading authority on OSS; their definition of open-source software complies with rules under 10 criteria.

These include:

  • Software redistribution

  • Source code availability

  • Distribution of licenses

  • License properties

  • Anti-discrimination

A detailed explanation of the 10 provisions can be found on their website.

Licenses

Different licenses allow programmers to modify the software with various conditions attached. The OSI approves licenses that comply with their definition of open-source software. The top 5 most popular licenses according to the Black Duck Knowledgebase are:

  1. MIT License

  2. GNU General Public License (GPL) 2.0

  3. Apache License 2.0

  4. GNU General Public License (GPL) 3.0

  5. BSD License 2.0 (3-clause, New or Revised)

When you change source code, one requirement of OSS is the inclusion of what you changed as well as your methods. The software created after code modifications may or may not be made available for free.

The Difference Between Open-source and Commercial Software

Commercially available software, 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.

Open-source Software vs. Free Software

Contrary to popular belief, neither focuses on the cost, or lack thereof, of the programs.

Open Source entails the free availability of source code and distribution. Free software, in like manner, includes code modification but emphasizes the freedoms users enjoy to do what they like with the software. The Free Software Foundation outlines 4 conditions for software to be considered completely free.

In addition, software can be classified as freeware. This means users download the software at no cost, but they cannot make any changes to its source code.

Advantages of Open-source Software

While cost is a driving factor, OSS has several additional benefits:

  • High-quality results when the source code is passed around, tested and fixed.

  • It is a valuable learning opportunity for programmers. They can learn and apply skills to the most popular programs available today.

  • Many consider open-source software more secure than proprietary software because bugs are identified and fixed quickly.

  • Since open-source software is in the public domain, there is little chance it can become unavailable. This is important for long-term projects that rely on these tools for the duration of the project.

  • Most of the software is free. Costs may arise later, however, such as subscriptions or support fees.

Popular Types of open-source software:

Open-source technologies helped establish much of the internet. Furthermore, many of the programs you and I use every day are based on open-source technologies. For example, Android OS and Apple’s OS X are based on the Linux 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

  • MySQL database system

Open Source and Developers

OSS projects are collaboration opportunities that improve skills and build connections in the field. Developers must be proficient with standard tools of open-source development.

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 - Allow large-scale projects to monitor issues and keep track of their fixes.

Testing and debugging tools - Automate testing during system integration and debug other programs.

Conclusion

Thousands of open-source projects are alternatives to proprietary software. Work on an OSS project as a pathway to building a career in software development. In addition, programmers can hone their skills by working on the biggest software programs in the world. Facebook, Google, and LinkedIn release software as Open Source, so developers can share knowledge, innovate solutions and contribute to stable, functional products.

This article has been edited by Laurence Bradford.

Continue Reading...