Skip to main content

What is Open Source?

In this chapter, we'll explore the history of open source and what that means. Before contributing to a project, you should understand what is open source and the principles behind it to help you appreciate the context in which you'll be collaborating and contributing.

Definition

Open source refers to a type of software whose source code is made available to the public, allowing anyone to view, use, modify, and distribute the code. This is in contrast to proprietary software, where the source code is kept secret and only the compiled program is distributed. The core principle behind open source is the idea of collaboration and the belief that sharing knowledge and resources leads to better, more reliable, and more innovative software.

Open source software is built on the premise that when many people work together, they can create something greater than the sum of its parts. Contributors to open source projects come from diverse backgrounds, and they bring a wide range of skills, experiences, and perspectives to the table. This diversity of thought and expertise leads to more robust, innovative, and reliable software.

Open Source Licenses

For software to be considered open source, it must be released under a license that grants users the right to access, modify, and distribute the source code. There are numerous open source license types, each with its own set of terms and conditions. Some popular open source licenses include the MIT License, the GNU General Public License (GPL), and the Apache License.

These open source licenses are crucial because they ensure that the software remains open and accessible to everyone. By granting users the right to view, modify, and distribute the code, open source licenses promote a culture of collaboration, innovation, and shared knowledge.

Brief History of Open Source

The history of open source dates back to the early days of computing when software was freely shared among researchers and developers.

Early Beginnings

In the 1950s and 1960s, computer software was often bundled with hardware, and source code was freely shared among researchers and developers. During this time, it was common for programmers to collaborate, share ideas, and modify each other's code to improve and innovate.

However, in the 1970s and 1980s, as the software industry began to grow and commercialize, companies started to view software as a valuable asset and began to restrict access to source code. This shift marked the beginning of the divide between proprietary software and the emerging open source movement.

The Birth of Free Software

In response to the growing restrictions on software access and distribution, computer scientist Richard Stallman founded the Free Software Foundation (FSF) in 1985. The FSF's goal was to promote the development and use of free software, which they defined as software that grants users the freedom to run, study, share, and modify the code. This concept is similar to open source but places a greater emphasis on the ethical and political aspects of software freedom.

Stallman and the FSF went on to develop the GNU Project (which stands for "GNU's Not Unix"), an ambitious effort to create a completely free and open operating system. While the GNU Project provided many essential components, it was missing a critical piece: a free and open kernel, the core component of an operating system.

The Arrival of Linux

In 1991, a Finnish computer science student named Linus Torvalds developed a free and open source kernel called Linux. When combined with the GNU system, Linux formed a complete, free, and open source operating system that is still widely used today. The success of Linux helped to popularize the concept of open source and sparked a wave of new projects, tools, and technologies.

The Open Source Initiative

In 1998, Christine Peterson, an Executive Director at Foresight coined the term "open source software" as a deliberate effort to make this field...more understandable to newcomers and to business[es]. She, alongside Eric S. Raymond, Bruce Perens, and other developers and advocates then created The Open Source Initiative (OSI) to spread more awareness about this concept. From there, the OSI developed the definition of open source, a set of criteria that software must meet to be considered open source. These criteria include free distribution, source code availability, derived works, and license integrity.

The OSI's efforts to promote open source led to a surge of interest and adoption by both individuals and organizations. Today, open source software is widely used across various industries, and many well-known technology companies, such as Google, IBM, and Microsoft, actively support and contribute to open source projects.

The Growth of Open Source Communities

As the open source movement gained momentum, numerous communities and platforms emerged to facilitate collaboration and knowledge sharing. Some notable examples include:

  • SourceForge: Launched in 1999, SourceForge was one of the first web-based platforms to provide tools and resources for developers to collaborate on open source projects. At its peak, SourceForge hosted thousands of projects and attracted millions of users.
  • GitHub: Founded in 2008, GitHub quickly became the go-to platform for hosting and collaborating on Git repositories. Today, GitHub is home to millions of open source projects and boasts a vibrant community of contributors from around the world.
  • GitLab: Launched in 2011 as an open source alternative to GitHub, GitLab offers a suite of tools and features for managing Git repositories, tracking issues, and facilitating collaboration.

These platforms have played a crucial role in fostering the growth of open source communities and making it easier for developers to contribute to and collaborate on projects.

The Rise of Corporate Involvement

In recent years, there has been a significant increase in corporate involvement in open source projects. Many companies now recognize the value of open source and actively contribute to and support various projects. Some companies have even gone so far as to open source their own internal tools and technologies, such as Google's TensorFlow and Facebook's React.

This increased corporate involvement has not only led to more resources and support for open source projects but has also helped to legitimize the open source movement and encourage wider adoption.

The Evolution of Open Source

The open source movement has come a long way since its early beginnings. Today, open source software is everywhere, powering everything from websites and mobile apps to artificial intelligence and machine learning algorithms.

As open source continues to evolve, new projects, tools, and technologies are constantly emerging, pushing the boundaries of what's possible and driving innovation across a wide range of industries.

The growing popularity of open source has also led to a thriving ecosystem of conferences, meetups, and online communities where developers can come together to learn, collaborate, and share their knowledge. By participating in these events and engaging with the open source community, you'll have the opportunity to expand your skills, build your network, and stay up-to-date with the latest developments in the field.

The history of open source software shows us how collective efforts can produce reliable, innovative, and widely adopted technologies.

In the next chapter, we'll explore the many benefits of contributing to open source projects and discuss how open source collaboration can help you access knowledge, connect with a community, and develop valuable skills.