Open Source Software

You have probably used open source software at some point today. Your Wi-Fi router, smart TV, computer, and other devices probably run a mix of proprietary and open source software. This chapter will introduce some popular open source software, licensing, and current debates.

Learning Objectives

You should be able to:

  • Define open source software
  • Recognize popular open source licenses
  • List several popular open source software projects
  • Discuss potential pros and cons of open source and proprietary software

What is open source?

Open source software lets users view, copy, modify and distribute software. People contribute to open source software for many reasons.

  • People who have benefitted from open source software like giving back.
  • People might solve a problem with open source software and give it to the world to help other people solve the same problem.
  • It can build trust with users.

There are several popular open source applications.

  • Firefox. Firefox is one of the most popular web browsers. The developers make all of their source code public and give Firefox away for free. Mozilla, the company that makes Firefox, wants to ensure that Firefox supports a free and open internet.
  • VLC Media Player. It plays everything. Before the VLC Media Player, it was hard to tell if you could play the video that you downloaded from the internet.
  • Blender. Blender is professional-grade 3D modeling software. It has been used to create feature films, and it's available for free.
  • Linux. "Linux" can refer to a lot of things, but at a high level, it is a set of operating systems that implement the Linux kernel. Android phones and many web servers run Linux. Linux can be used as a desktop operating system.
  • Python. The Python programming language can be used by anybody around the world without cost. It can be used to build websites, develop machine learning algorithms, make games, and much more.

Cathedral Versus the Bazaar

Open source software is typically developed by distributed teams and individuals. Thousands of people across the globe can contribute code to a single software product. This is equivalent to a bazaar in which many individuals bring their unique perspectives. Open source advocates often say that this approach results in better software.

Proprietary software is typically designed by a single entity. That entity has control over the entire design process. The analysis would be a cathedral--one entity was in charge of the entire construction process. Proponents of this approach to software say that it results in higher quality software because it is easier to make unified design decisions.

Open Source Licenses

Not all open source software is free, and not all free software is open source. The word "free" can be ambiguous. Something can be "free as in beer" or "free as in speech." Software that you do not have to pay money for is "free as in beer." Software that you are free to download, modify, and distribute is "free as in speech." Firefox is free as in speech and beer. RedHat Linux is free as in speech, but you have to pay a license to use it. Microsoft does not charge for Minesweeper so it is free as in beer, but Microsoft does not give the source code away so it is not free as in speech.

What you can and cannot do is governed by software licenses. Below are 3 popular open source licenses and a brief description of what you can do with software according to those licenses. (This is not legal advice.)

  • MIT License: Do whatever you want with the software (i.e., copy, modify, and distribute) as long as the software retains the MIT license.
  • GNU GPL v2: Do whatever you want with the software as long as you share the changes. If you incorporate GPL v2 code in your product, you do not need to open source the code you write.
  • GNU GPL v3: If you incorporate GPL v3 code in your product, you also have to open source your product.

The Linux kernel is licensed under GPL v2. Some businesses are reluctant to adopt GPL v3 software because they would have to open source all of their proprietary software. Because Linux uses the GPL v2, a business can write a custom application that runs on Linux and deploy that application without making their application open source. In essence, it's like an ice cream cone where the ice cream is the open source foundation, and the sprinkles are the proprietary bits that go on top of open source. Some people claim that using open source as a foundation for proprietary software is an abuse of the open source ethos, but many in the open source community are just happy that open source is being embraced.

Exercise: Beer or Speech

  • Make a list of some of the software that you use daily.
  • Is the software open source or proprietary? (You may need to search the internet to find out.)

Reflection

  • Which approach to product design is better--the cathedral or the bazaar?
  • If you were starting a business developing software, would your software be open source or proprietary?
  • What are the pros and cons of open source and proprietary software?
  • Does open source software mean you can do whatever you want with it?

Key Terms

  • Open Source: A type of software licensing that allows the source code to be freely available for anyone to view, modify, and distribute. Open source software promotes collaboration and sharing, enabling developers to improve and build upon existing code.
  • Free as in Speech: A term used to describe software that is free in terms of freedom, not price. It emphasizes the user's liberty to run, modify, and share the software, aligning with the principles of open source and free software.
  • Free as in Beer: A term used to describe software that is free of charge. It emphasizes the cost aspect, meaning the software can be obtained without payment, but it does not necessarily grant the freedoms associated with open source or free software.
  • MIT License: A permissive open source license that allows users to freely use, modify, and distribute the software, provided that the original copyright notice and permission notice are included in all copies or substantial portions of the software. It imposes minimal restrictions on reuse.
  • GPLv2 License (GNU General Public License version 2): A copyleft open source license that allows users to freely use, modify, and distribute the software, but requires that any derivative works also be licensed under the GPLv2. This ensures that the software and its derivatives remain free and open.
  • GPLv3 License (GNU General Public License version 3): An updated version of the GPLv2 license that includes additional protections against software patents, tivoization (restricting user modifications), and other issues. Like GPLv2, it requires that derivative works be licensed under the GPLv3 to ensure continued freedom and openness.