A Byte of Blockchain : Week 16 - Open Source

·

4 min read

A Byte of Blockchain : Week 16 - 
Open Source

This week we will diverge from blockchain and talk about another topic which existed much before blockchain was even a word. It is called open source. What is open source and why are talking about it in the context of blockchain?

As per wikipedia,

a. Open source is source code that is made freely available for possible modification and redistribution. The open source model is a decentralized software development model that encourages open collaboration.

b. Open source refers to a computer program in which the source code is available to the general public for use or modification from its original design. Code is released under the terms of a software license. Depending on the license terms, others may then download, modify and publish their version ( called a FORK) back to the community.

Let us elaborate on

a. What is source code?

b. What is a computer software?

Dive in....

Before we understand open source software, let us start with software that we use at work or home on a daily basis e.g., for preparing documents, we use word processing software like Microsoft word, Apple pages, spreadsheets like Microsoft Excel or Google sheets for financial analysis or simple calculations & so on.

ed-hardie-xG02JzIBf7o-unsplash.jpg

Photo by Ed Hardie on Unsplash

Software released by companies like Microsoft or Apple and similar ones were developed by these companies to earn revenue on the sales or license fees that they collect from the users. The business model of these products require users to pay for using these software packages on sale and on periodical basis (monthly, yearly, quarterly etc) for ongoing use. Also, the packages will be updated and to date only on payment of subscription fees. You would have noticed that when we first download and start using these applications, we are shown some terms & conditions which most of us don't bother to read and click "I agree". Why does Microsoft or Apple want us to agree on these terms and conditions?

A software or computer program is written using "code" (using a programming language like C, Python etc). This code then "instructs" the computer to do certain actions based on user interaction with the software. For example, if we click on "save", the code instructs the computer to "save" the file by writing the data to persistent storage. So, a code is like a blueprint for a computer software. A good example of a blueprint is the recipe for coca cola. It is a well kept secret and Coca Cola earns its revenue from sales of the beverage.

Similarly, software companies do not give third party access to their software source code since it drives their revenue. Now, let us imagine a scenario where these companies start sharing their source code. What will happen in such a scenario?

  1. The source code of these products will be public. That means everyone can see the source code that makes the software work.

  2. Some of them will download this code and make improvements or enhancements which will be incorporated back into the product thus improving it's performance.

  3. Any vulnerabilities in the source code can be rectified by a programmer who can modify the code to mitigate the risk thus hardening the software against hacks.

Thus, the maintenance & upkeep of the software shifts from the company to a community oriented co-operation model .

This model where the development of software is "open sourced" meaning anyone can access the code and contribute to its improvement is called open source.

So open source software & source code is defined as below : (Source : here)

Open source Software is software with source code that anyone can inspect, modify & enhance.

"Source code" is the code computer programmers can manipulate to change how a piece of software - a "program" or "application

Programmers who have access to a computer program's source code can improve that program by adding features to it or fixing parts that don't always work correctly.

Open source software is collaborative & rely on community production and peer review to modify, use and share source code with each other.

Software like Microsoft office suite, apple keynotes etc are called "Proprietary" or "closed source" software meaning only the organization has exclusive access to the software to modify it. The software is encrypted so only the staff of the organization which created the software can legally copy, modify & update the source code.

To use proprietary software, users must agree that they will not use the software other than for what it is permitted. This is what we as users "agree" to when using a proprietary software for the first time.

There is a license for open source software too but the terms are radically different where the users get permission to use the software more freely compared to proprietary software.

Now, just because open source software is free to use doesn't mean that it is free of charge. In other words, just because open source software is freely available does not mean it cannot generate revenue.

More on open source examples, forking etc next week!!