Jul 15, 2021 By Team YoungWonks *
Those interested in programming are likely to have come across this term: open source software. What is the meaning of the term open source software then? Where is it used and how? This blog breaks down all this and more.
What is Open Source Software (OSS)?
Software that is shared with its source code and thus made available to be used, modified, and distributed with its original rights is referred to as Open Source Software (OSS). What then is source code? Source code typically is the text file version of a computer program or software containing instructions followed by the computer in order to carry out its tasks. Computer users rarely ever see it but programmers with access to it can change a program by changing it, adding to it, or fixing sections that don’t work properly.
So OSS usually includes a license that lets programmers change the software to best suit their requirements and control how the software can be shared.
Closed Source Software (CSS), on the other hand, refers to proprietary software or non-free software (also typically commercial software). This covers computer software where the software’s publisher or another person reserves some rights from licensees to use, modify, share modifications, or share the software. It sometimes includes patent rights. The owner of proprietary software enjoys certain exclusive rights over the software. The owner has the power to restrict use, inspection, modification and redistribution of source code.
Software development models using OSS are called open source models; they are essentially a decentralized software development model encouraging open collaboration and open source development.
Today, open-source cloud computing is also common, it covers cloud-based solutions and services developed using the open source technologies and licensing agreements.
Not surprisingly, the adoption of open source software models has been quite beneficial indeed, as it is said to have resulted in savings of about billion per year for consumers / end-users, who got to (and continue to) avail of the products built using this OSS for much less (given how the zero cost of CSS kept overall costs low).
Origins of Open Source Software
Interestingly, the early days of computing saw programmers collaborate in their efforts to develop software; this meant that the source code was regularly shared among them. But this changed with the commercialization of software in the 1970s-80s. Academics, however, rooted for the need for OSS. Two names stand out: Donald Knuth and Richard Stallman. While Knuth came up with the TeX computer typesetting system in 1979 and made the source code available to all programmers, Stallman did the same when he came up with the GNU operating system. In fact, Stallman continues to advocate for software to be shared in a fashion where the users have the freedom to use, study, distribute, and modify that software. In fact, software that offers all these liberties is called free software. Thus, Stallman who went on to found the Free Software Foundation in 1985, is known as a free software movement activist.
Since then many others have joined the movement and have promoted the adoption of free and open source software (FOSS) for reasons such as security, affordability, transparency, perpetuity, interoperability and flexibility. However, the free software movement was later on rebranded so as to stress upon the business potential of sharing and collaborating on software and source code. This in turn paved the way for the setting up of the Open Source Initiative in February 1998.
The Open Source Initiative
Founded to promote and protect open source software and communities, the Open Source Initiative (OSI) is essentially a central informational and governing repository of open source software. It draws and maintains a framework of rules and guidelines for using and interacting with OSS, in addition to sharing code licensing information, giving support, definitions, and encouraging general community collaboration to ensure the use and treatment of open source technology stays understandable and ethical.
It publishes the Open Source Definition, a document that helps determine whether a software license can be labeled with the open-source certification mark.
How does Open Source Software (OSS) work?
Typically, OSS is stored in a public repository and shared publicly. Anyone can gain access to this repository; one could use the code independently or make changes so as to enhance the design and functionality of the project.
As mentioned earlier, OSS comes with a distribution license. These open source software licenses include terms defining how programmers can use, study, modify, and most importantly, distribute the software.
It is important to note that when a change is made to the open source code, the OSS should include all that was modified and the methods used to do so. Depending on the license terms, the software produced as a result of these changes do not necessarily have to be made available for free.
Top 10 OSS licenses
The following are the ten most popular OSS licenses today:
- MIT License
- GNU General Public License (GPL) 2.0
- Apache License 2.0
- GNU General Public License (GPL) 3.0
- BSD License 2.0 (3-clause, New or Revised)
- ISC License
- Artistic License (Perl)
- GNU Lesser General Public License (LGPL) 2.1
- GNU Lesser General Public License (LGPL) 3.0
- Eclipse Public License (EPL)
Examples of OSS
Now let us look at examples of OSS and this covers software that is either entirely open source or based on open source code…
- Mozilla Firefox: A web browser that competes with Internet Explorer
- Android: An operating system for phones and tablets all over the world
- LibreOffice: An office software suite
- VLC Media Player: A portable, cross-platform media player software and streaming media server
- WordPress: A leading content management system
- OpenOffice: A competitor to Microsoft Office
- Gimp: A graphic tool with features found in Photoshop
- Zimbra: An open source email software that competes with Outlook server
- MySQL, Ingres, and EnterpriseDB: All open source database software packages that compete with commercial products from Oracle, Microsoft, Sybase, and IBM
- SugarCRM: A customer relationship management software that counts Salesforce.com and Siebel among its rivals
- Google Chrome: This browser is made by Google using the free and open-source codebase of Chromium
Differences between Open Source Software (OSS) and Closed Source Software (CSS)
Pricing: The most obvious difference is in terms of pricing. So while OSS is available for nominal or zero licensing and usage charges, CSS comes at a cost that differs depending on the scale of the software.
Freedom to Customise: OSS can be totally customized depending on the open source license, whereas with CSS, change requests (including for bug fixes, features, and enhancements) have to be made to the company selling the software.
User Friendliness, After-Sales Support and Warranties: CSS providers ensure their offerings do not lack on any of these fronts. CSS is about for profit products and here user experience is a key selling point, so this is an area where typically CSS scores over OSS. CSS is also more suitable for a large scale production environment when compared to OSS.
Security: In case of OSS, because the source code can be reviewed by anyone, it typically helps keep security bugs in check. With CSS, the source code is closed for review, so there are more potential security threats. And if and when such security bugs are found, the software distributor is supposed to fix them.
Community support: OSS thrives because of community contribution in development, review, critique and enhancement. CSS meanwhile is not open to any such contribution.
Advantages of Open Source Software
Easy on the pocket: Open source software is free.
Flexibility: Open source is flexible; this means that developers have the freedom to make changes in order to address dysfunctional or problematic aspects of the application to better suit their specific needs.
Stability: Since the source code is publicly distributed, users can use it for their long-term projects knowing that the code’s creators will not discontinue the project on a whim. Thus OSS is very stable, lending stability to open source projects.
Encourages innovations: Open source softwares encourage developers to use pre-existing code and build something on top of it by improving it further. It thus encourages creativity and the spirit of innovation.
Community participation: Given that they can be accessed by anyone, OSS attracts participation from many people giving them a sense of community. Indeed, the open source community has grown a lot over the years.
Disadvantages of Open Source Software
Not so user-friendly: OSS can be tougher to adopt since it is typically not easy to set them up and they usually lack friendly user interfaces.
Liability issues: Proprietary software is fully controlled by the vendor, but OSS usually doesn’t have any warranty, liability, or infringement indemnity protection. This means the OSS consumer can be held accountable for not complying with legal obligations.
Unexpected expenses: OSS can incur unexpected costs in terms of having to train users, import data and setting up hardware.
Lack of compatibility: There’s a high possibility of OSS not being compatible with other (CSS) softwares. Often developers need to rely on specialized drivers to solve this.
*Contributors: Written by Vidya Prabhu; Lead image by: Abhishek Aggarwal