Skip to main content

Section 1.2 Why OSS Matters

Because of the open nature of the source code, many credible organizations believe that OSS is at least comparable to proprietary software in the area of software security. And, security in nearly every type of software matters to some extent, often to a critical extent. A user of proprietary software must accept the level of security (as well as the lack thereof) that the software vendor is able and willing to provide, as well as the speed at which fixes and updates to the software are released. If the user is not willing to accept these limitations, they must simply choose a different vendor. Hence, some organizations such as the US Department of Defense
 1 
dodcio.defense.gov/Open-Source-Software-FAQ/
require that all software either have a warranty or be open source. So, open source matters for reasons of security.
Unfortunately, most people do not even read the legal terms and conditions for software packages before accepting them. A 2017 study entitled You’re not alone, no one reads terms of service agreements
 2 
businessinsider.com/deloitte-study-91-percent-agree-terms-of-service-without-reading-2017-11
found that over 90% of people do not read these statements before agreeing to them. Honestly, I am shocked that statistic is not even higher... So, everyone who does not read these is at the mercy of the developers, which might or might not be a safe choice. Open source should matter to those who do not read these license agreements because they and others can look at the source code.
Did you realize that open source software is so incredibly prevalent that you would be pretty hard-pressed to not be using it regularly? Android and Apple iOS very heavily dominate the global market share for cell phone operating systems. However, the Android
 3 
source.android.com
system has more than three times as many users as Apple’s iOS, and Android is open source. Linux
 4 
en.wikipedia.org/wiki/Linux
is a family of open source operating systems that powers the majority of the webpages on the Internet. Chrome is by far the most popular browser on the planet, and while it is not fully open source, it is built on top of a number of OSS projects, the details of which can be found by going to "chrome://credits" in the Chrome browser’s URL bar. Even Apple iOS, which as mentioned above is the second most popular operating systems for cell phones, includes a lot of OSS components which are listed in "Settings > General > Legal and Regulatory". We will learn a lot more about open source licensing in Chapter 5. So, OSS matters to everyone who uses a cell phone or searches the Internet. In fact, these are just examples, virtually any piece of software that the reader is using will likely include OSS components, so OSS should matter to you!
OSS might also matter to you if you are a student or a learner because it is real. You can see into not only the source code but also into the process of making code improvements. And if you choose to go out into the real world looking for a job as a software developer, you will have a tremendous advantage if you can prove that you have experience in real software projects — ugly, messy, confusing, gigantic, real software projects.
Without OSS, getting experience in real software projects requires access, and probably permission, to see the source code. For students, that access is usually limited to those who can get internships or positions in co-op programs. Not everyone has the opportunity to spend the summer interning with a company that does large-scale software development, meaning that too few students have the opportunity to work with large (proprietary/closed) code-bases. And even if they do, those students typically cannot show their work to anyone outside of the sponsoring company, and they sometimes cannot even discuss that work.
In the world of OSS, the source code is available to anyone who wants to see it. Not only is the source code available — also available are all of the interesting challenges that go with managing large software projects. In this book, we explore a number of these challenges and help you engage in them in direct and practical ways.

Subsection 1.2.1 Source Control

How do fifteen software engineers work on the same piece of software together? When two software engineers decide independently to edit the same line of code, what happens? In the world of OSS, we make use of version control systems to help tackle these kinds of problems. Without version control, it’s a disaster, which is why we cover version control in Chapter 4.

Subsection 1.2.2 Documentation

There’s a lot more to good software than just the code. How do you make sure people have the resources and knowledge they need to find and run (and/or contribute to) the software that you make? Beautiful code that doesn’t get used is exactly as useful as code that was never written. Even the very best code can still have bugs, which means the ability to find and eliminate bugs is a critical skill for all software engineers. If you don’t know how to find the bugs your users find, you’re in trouble. Which is why we cover documentation and the mechanics of fixing code in Chapter 6.

Subsection 1.2.3 Experiencing the Software Lifecycle

There’s a saying about software programs: they’re never finished, only abandoned. There’s always more work to do to improve any software project. The thing that makes OSS so unique, and so interesting to the aspiring programmer, is that anyone can participate in an OSS project. Many large projects can benefit from contribution by even novice programmers. There are also more OSS projects now than ever before, with an almost unlimited number of interesting problems. Want to learn how web browsers work? Hack on Firefox. Want to put together an awesome multilingual book reader for people with vision impairment? Hack on Pretext or espeak.
Honestly, the primary key is to find a project that interests you.

Checkpoint 1.2.1. Exercise: Finding a Cool Project.

Imagine that you have just been hired as a programmer for OSS Inc., and your manager has told you that you must spend 20% of your time to work on a OSS project that matters to you.
  1. First, search the web and find sites that host OSS projects. There are many. Bookmark these so that you can come back to them later.
  2. Second, browse through several of these sites and find one or more projects that are interesting to you. You might be interested in projects that benefit others. You might be interested in tools that support work that you do. Or, it might be that you find something that strikes your fancy that you never considered before! Take this as an opportunity to explore broadly.
  3. After you find an open source project of interest, write a blog post about it. At this point, the most important thing you can probably do is to explain why the project is interesting to you.
If you don’t have a blog, set one up for free! Visit Blogger
 5 
blogger.com
or WordPress
 6 
wordress.com
; setting up a new blog is easy. Blogs are widely used in the FOSS world by project members to share what they’re doing. Your voice will become one of many, and who knows — your blog might become a resource that other students later look to for inspiration when they are looking for projects to get involved in!

Checkpoint 1.2.2.

    Why is it advantageous for students and independent learners to engage with Open Source Software (OSS) projects? SELECT ALL THAT APPLY
  • OSS projects offer real-world software development experience.
  • Engaging with OSS projects allows students and independent learners to work on real-world software development projects, gain practical experience, and contribute to widely-used software.
  • OSS projects present unique challenges for developers due to their diverse nature, fostering an enriching learning experience.
  • OSS projects often present unique challenges, such as collaborating with geographically dispersed teams and contributing to a diverse range of projects, which further enrich the learning experience for developers.
  • Students often get paid internships by OSS companies for their work.
  • This is not a guaranteed advantage for all students and independent learners.
  • Students can claim partial ownership of the OSS projects they contribute to.
  • Ownership in OSS projects works differently than in traditional proprietary software. While students couldn’t claim OSS Project’s ownership, they may gain recognition for their contributions.

Checkpoint 1.2.3.

    What type of software is generally more secure?
  • Proprietary, because proprietary source code is not open to the public and cannot be easily modified.
  • Even though proprietary software’s source code is not shared with the public, it is not ensured that the security will be managed efficiently.
  • Open source, because open source software is more transparent compared to proprietary software, allowing developers to respond to bugs more rapidly and efficiently.
  • Despite the nature of open source that allows the public to access the source code, that doesn’t mean open-source software is more reliable and could still hold some security threats to users.
  • Proprietary, because proprietary software is strictly managed by a single organization so that it will ensure the software’s security.
  • Contrary to popular belief, this leads to more vulnerabilities as it is difficult for a single entity to keep track of every aspect of the product.
  • Open source, because open source software needs a warranty to be protected from security threats.
  • Open source software typically doesn’t come with a warranty, but licenses that grant users the freedom to view, modify, and distribute the source code.
  • While open-source software seems inherently more secure, both open-source software and proprietary software pose possible challenges to software security.
  • Yes, while OSS can be considered to be more transparent, it isn’t inherently less secure than their proprietary counterparts!
You have attempted of activities on this page.