0 Tutorials

Open Source

The term Open Source was invented in 1998 when the Open Source Initiative (OSI ) organization was created. The term was coined to make the movement more business-friendly than the already established “Free Software” movement which is more a political social movement. Open Source simply means that the source code that makes a program is included in the package distribution so anybody can make changes to such program. That is the difference between Open Source and commercial software where you only get the built product, and only the creator of such product can make changes to it. If you are not familiar with the process of how a computer program is created then here is a quick overview. A computer program is created in two phases, the first phase is when the program is coded by a computer programmer using his preferred programming language like JAVA, Python, C, C++ etc. That is the source code of the program, but computers can’t read the source code, so the program needs to be “compile” to a “binary” form. The binary code is normally represented with 1 and 0 which all computers can read. You can compile a program from its source code, but once the program is compiled you cannot ‘de-compile” it back to its original source code. This is the difference between commercial and open source software. In commercial software, you get the program in its compiled form, but not the source code, in an Open Source program, you get both.

Is Open Source Software Always Free?

Many people when they hear the word “Open Source” they automatically think about “free” software. The word ‘Free” and Open Source have become almost synonymous, but that is not accurate. It’s true that most of the software released under the many Open Source licenses are freely available, but you also will find a lot of software marketed as Open Source ( RedHat for example ) that is not readily available for free, at least not in the compiled form. All software released under an Open Source license is required to release the source code so If you know how you can compile the source code yourself; you can even build your own version of that software and sell it or release it for free depending on the license the software was originally released as.

Open Source Software Distribution Rules

Based on the Open Source Initiative website, all Open Source software must comply with the following criteria:

Free Redistribution ( the license shall not restrict anybody from selling or giving away the software )
Source Code ( The program must include the source code as well as the compiled form )
Derived Works (The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software )
Integrity of The Author’s Source Code
No Discrimination Against Persons or Groups
No Discrimination Against Fields of Endeavor
Distribution of License
License Must Not Be Specific to a Product
License Must Not Restrict Other Software
License Must Be Technology-Neutral
Open Source Most Popular Licenses

The most popular Open Source licenses are:

Apache License 2.0
BSD 3-Clause “New” or “Revised” license
BSD 2-Clause “Simplified” or “FreeBSD” license
GNU General Public License (GPL)
GNU Library or “Lesser” General Public License (LGPL)
MIT license
Mozilla Public License 2.0
Common Development and Distribution License
Eclipse Public License
Open Source as a Political Movement
Sometimes you will hear the word Open Source beyond the realm of software. That’s because Open Source has become a movement associated with transparency, collaboration, and sharing. Some governments or organizations will claim they are open sourcing some of their initiatives, meaning they are being completely transparent about their process or policies, and releasing the source code or procedures of any framework or program to the general public.

What’s the Difference Between the Open Source and Free Software Movement?

I think the main difference between the Open Source and the Free software movement is the objective. The free software movement is more of a social movement that seeks to raise awareness about the freedom each computer user has or should have when using a computer program while the Open Source movement is more of a software distribution methodology. Both movements are similar in many ways, but any software released as free software must satisfy these 4 freedoms:

The freedom to run the program as you wish, for any purpose (freedom 0).
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help your neighbor (freedom 2).
The freedom to distribute copies of your modified versions to others (freedom 3).
Some Open Source programs are more restrictive and don’t satisfy all these freedoms.

Is Open Source Software Better Than Commercial Software?

In many instances Open Source software is better than commercial software, especially when the Open Source program is very popular ( Like the Apache Web Server for example ) There are frequent version releases, and security patches are quick when vulnerabilities are found. And because there are so many people actively improving and contributing to the project, the software tends to be more reliable than a commercial program where only a few people have access to the source code. I believe the quality of an Open Source program is tied to the popularity of such program. Many Open Source projects are abandoned, so pay attention to how active a project is before adopting an Open Source program for your business.

Is Open Source Software Cheaper?

Generally yes. Most Open Source software vendors only charge you for support and for new software releases while commercial software vendors charge you for licenses as well. But to get the most out of Open Source software, in my opinion, you need to have the in-house how-to talent. I’ve seen companies spending a lot of money in consulting and supporting contracts implementing Open Source Software and not being 100% successful. So if you have the “figure things out on your own” attitude, Open Source software can be a great money-saving strategy, otherwise, it can become a nightmare.