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 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 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 system has more than three times as many users as Apple’s iOS, and Android is open source.
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.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.
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.
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.
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 or
WordPress; 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!