What is the purpose of open source software?

SUOL INNOVATIONS LTD
inDrive.Tech
Published in
9 min readMar 23, 2022

Hello! I’m Yura, head of inDriver’s platform team. I’ve been in the IT industry for over 12 years, coding on iOS for 7 years now. In this article, I will look into the principles and purposes of open source software development. We will review here open source-related licences, as well as take a look at the market, and government involvement in the process.

A little history

I will start off by defining what open source is. It is open source software whose source code is available for review, analysis, and modification, which allows you to make sure that there are no vulnerabilities left.

Let’s try getting down to the root of this definition. There are two terms used here: free software and open source. The term open source was used as a definition in 1998 by Eric Raymond and Bruce Perens. They argued that the term free software in English is ambiguous and confusing to many commercial entrepreneurs.

Eric Raymond and Bruce Perens

But where did these terms come from? In 1985, the Free Software Foundation was established. It came into being through the efforts of Richard Stallman, a software developer, who joined the research team at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology (MIT). Stallman was involved in developing free software (e.g. Emacs, a text editor for minicomputers). This text editor was later sold to a commercial distributor, and in 1984 Stallman decided to set up a free software project called GNU.

Richard Stallman

In case you didn’t know, A, GNU is a recursive acronym for “GNU’s Not UNIX”, and B, it is a UNIX-like operating system with a set of free software applications. As part of the project, enthusiasts coined the term “free software” and formulated its criteria including the rights to use, study, share, and improve the software.

4 key principles

In 1985, Stallman established the Free Software Foundation to develop free software through donations. The primary goal of the foundation is to secure and promote freedom for computer users worldwide. The Foundation took on the task of protecting the rights of all software users.

The foundation’s philosophy is based on four essential freedoms:

  • The freedom to run the programme, for any purpose (Freedom 0).
  • The freedom to study how the programme works, and adapt it to your needs (Freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbour (Freedom 2).
  • The freedom to improve the programme, and release your improvements to the public, so that the whole community benefits (Freedom 3). Access to the source code is a precondition for this.

A software is free if its users enjoy the four essential freedoms listed above. Everything is quite transparent and positive. But here there is an overlap in relationships between software developers in legal terms and within the scope of government policy. Quite often, “free software” does not mean “non-commercial”. On the contrary, it may be available for commercial use and distribution. This rule is fundamentally important, as without it free software fails to achieve its goals.

In English-language texts, “free” means not only “freely circulating and available” but also “free of charge”. It is often employed to refer to free software which is distributed without charge but is not available for modification. Thus, it follows that such software is not freely circulating and available.

To eliminate misunderstandings, the term open source was coined. It was introduced by the Open Source Initiative, a non-profit organisation which was founded by the aforementioned Raymond and Perens.

Organisational logo

In the mid-1990s, Netscape was the first major company to move to an open source process. Its Netscape Navigator browser was one of the world’s most popular browsers, but with the advent of Internet Explorer it began to be edged out of the market.

In 1998, Netscape decided to open-source its browser. A year later the company was out of business, but the Navigator source code became the cornerstone of one of today’s most popular browsers, Mozilla Firefox. In the same year, 1998, the Open Source Initiative was formed to promote open source software.

Netscape Navigator’s interface

The founders of the Open Source Initiative came up with an alternative to free software and placed greater emphasis on open- source strategies. In other words, it is not free software, but open source software. The software developers have provided the definition of the term, describing in more detail what open source is and what serves as its basis.

In their view, the premise of open source software is not just access to the source code, but also the terms of distribution for open source software. Additionally, Raymond and Perens established three important criteria:

  • The licence shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution.
  • The licence shall not require a royalty or other fee for such sale.
  • The programme must include source code, and must allow distribution in source code as well as compiled form.

These tenets were derived in part from the Debian Free Software Guidelines. I won’t break them down here to explore the discriminatory and licensing requirements, but after that the gradual development of open source software from one non-profit organisation to another begins.

dino

Incidentally, another advantage of the Open Source Initiative is the SourceForge repository for open source software. I remember it from the pre-mobile era of file archiver downloads on Windows-based computers, but it’s not as popular now.

Licences

I would like to dwell a little here on the relations between open- source developers, and the licences under which this source code is currently distributed. Four categories are distinguished here:

1. Public Domain. The category of licences that cover creative materials. They are not protected by intellectual property laws such as copyright, trademark, or patent laws. The public owns these works, not an individual author or artist. Anyone can use a public domain work without obtaining permission.

An example of such a licence is СС0 by Creative Commons

2. Permissive. These are software licences that place little or no restriction on the freedom of software users and developers working with the source code. Unlike other licences, they are not copyleft licences. They are similar in spirit to Public Domain, but do not require a copyright waiver.

3. Copyleft. These are licences that require that distribution of the product is subject to the same licence as the original. To phrase it differently, you cannot make this software proprietary.

4. Proprietary. This is a type of license that is privately owned by authors or copyright holders, and does not meet the criteria for free software. The copyright holder retains a monopoly on its use, copying, and modification.

The marketplace

Now a word about the variety of open source projects. Open source software is used almost everywhere and in every field, from mobile phones to blockchain technology and artificial intelligence.

Here are some simple examples. The Android operating system is installed on 2.5 billion active devices, representing a huge market that is built on open source software. On the web, it is Wordpress, which powers more than 40 per cent of all websites on the Internet. In backend and infrastructure, NGINX and Kubernetes, being used for load and container orchestration, are the industry standards. In AI, it is TensorFlow, a platform that is used for machine learning. For blockchain technology, it is Ethereum, the platform that underpins many cryptocurrencies.

Many individual software developers contribute as much to open source technology as corporations. Linus Torvalds was the creator of Linux. Michael Widenius created probably the most popular database for web developers, MySQL, and Michael Stonebraker and his team at Berkeley created PostgreSQL.

Speaking of corporations, all the big IT players understand the importance of open source projects. As an example, I would like to cite Red Hat’s research findings. It surveys more than 1,000 companies each year and provides an overview of the market, showing where the IT sector is heading and how it is changing. According to the most recent survey, 90 percent of respondents believe that open source plays an important role in corporate technology. The most common ways of using open source in the corporate sector include: IT infrastructure, application development, and digital transformation. These figures have increased by 11 percent over the past two years.

Why are corporations turning to open source? First and foremost, participation in open projects provides the opportunity to draw attention not only to the project in hand, but also to your other programmes. Engaging an open community in company projects makes it easier to recruit and retain talent within the company. The motivational part is also important — external support for projects motivates software developers to step up their ongoing development efforts.

But there are downsides here as well. Open source code can be used in projects that its authors are not even aware of. If a multi-component project comprises a large number of submodules, a security breach can easily occur in the dependency chain, which may go unnoticed for a long time.

Russia Open Source

Let’s move on to Russian realities. On 1 October 2021, the Russian Ministry for Digital Development and major IT companies discussed the open source strategy until 2024.

The goals of open source software development in Russia are:

  • Product stack development for the public sector. Ensuring that open source components are used there in a secure manner.
  • Increasing the effectiveness of digitalisation within government entities through the reuse of software code developed at public expense.

The experiences of other countries are also referred to and accounted for in the development of the strategy. In the US, the policy adopted in 2016 is to publish at least 20 percent of government software source code under open licences.

The EU also has an open source strategy in place, which contains a reference to technological sovereignty. China contributes to establishing an independent ecosystem. Specifically, it is implementing its own versions of open operating systems, e.g. HarmonyOS. There are analogues of Java, PostgreSQL, GitHub.

A non-profit organisation is being set up in Russia to maintain a repository where the licences will be deposited. Efforts are underway to create the analogue of an open licence, under which everything will be made available. See further details in the draft strategy.

Hacktoberfest

Hacktoberfest is a festival to support the open source community and motivate software developers to further improve open source projects. It is held annually in October. Open source projects provide opportunities for getting a job, developing a personal brand or simply showcasing your knowledge of coding.

Participants are required to make four pool requests on GitHub or GitLab. Of course, you have to register on the website beforehand.

One of the stages of the registration process

Just to mention one of the nuances involved: you can contribute to your own repositories, it’s not obligatory to develop a third-party project. Nor does it matter what language you code in. You can select your favourite product or open source project, check out the issues you can close, or even make corrections to the documentation. The options to choose from are many, but the ultimate choice is yours.

From my personal examples: when I was joining inDriver, I developed an open source project involving Roskachestvo. Back then, there was a Roskachestvo app in the market where a Russian laboratory tested and validated products, but the visual implementation left a lot to be desired. At the same time, I tested out the new architecture and the new technologies that were being released in iOS (e.g. Swift UI with a unidirectional architecture). This has become a valuable long-term contribution.

The UDF logo

And finally I invite everyone to participate in the development of inDriver’s open source project. We have released the iOS architecture with the Redux paradigm. Of course, this is not the first implementation of a unidirectional architecture, but it offers several advantages: adaptation to the UI Kit, modularisable, with field-testing in a large project.

That’s it for now. Thank you for reading this! Feel free to ask questions in the comments section.

--

--