What Is Open Source?

What Is Open Source? image

Open Source is a term used in software development which means the source code for a piece of software is "open", i.e., it is available for inspection, manipulation, and improvement. This is in contrast to "closed source", often proprietary, software. For example, when you purchase a license for Microsoft Windows, you do not receive the source code, and it is not available for study or changes.

A discussion of Open Source Software (OSS) often leads to the concept of Free Open Source Software (FOSS) with the "free" being misconstrued as "no financial cost". That makes sense when contrasting open source against closed "proprietary" software which usually requires payment for a license to be able to make legal use of it.

Creators of proprietary software need legal protection of their intellectual property. They often obtain the copyright which dictates and governs their rights over the legal use and distribution of their creation. Such rights may also cover the distribution of any modified forms of the original product and attribution.

Creators of FOSS see things differently. They want their works distributed freely without any restriction to what you can do with them. Any derivatives of their works must be passed on with the same "free" or "freedom" tag. This is the opposite of the principle of copyright, so the term "copyleft" was coined to cover the making of software free to anyone and all modified or extended forms of the software being made available on the same terms of freedom.

We have copyright licenses that put everything under lock and key. Then copyleft ones ensure nothing is locked up. Software under copyleft still have some restrictions on the way they can be redistributed. That is what gave rise to other types of permissive licenses which have minimum restrictions on the redistribution of software. These are generally referred to as Berkley Software Distribution (BSD) licenses in various forms which were originally used for BSD, a member of the Unix family of operating systems. These BSD-style licenses are sometimes described as "copycenter" as the limitations on redistribution fall between the copyright and copyleft groups of licenses.

Different licenses stress different aspects of the software (e.g., Affero GPL and network server software). However, they often state the degree of compatibility with other licenses used by other popular open source software.

These are some examples of open source licenses and projects or software that use each of them.

Copyleft licenses:

  • GNU GPL (Git, Linux, Drupal, WordPress, etc.)
  • Affero GPL (MongoDB, Ghostscript, etc.)

Copycenter licenses:

  • BSD (Chromium web browser, D3.js, FreeBSD, Homebrew, PHPUnit, Zend Framework, etc.)
  • MIT (Ruby on Rails, jQuery, Node.js, Backbone.js, Symfony, etc.)
  • Apache Software Licence (Apache HTTP Server, Kubernetes, BitKeeper, Less, ASP.NET MVC, etc.)

These licenses have different versions, and other types of licenses are available, e.g., PHP Licence, Python Software Foundation (PSF) Licence, etc. Niche licenses will often state whether they are compatible with any of the main ones such as GPL, MIT or BSD.

Even though there are many licenses, most developers will not have to worry about the intricacies or their legal position. Open source is a powerful concept with a number of advantages and disadvantages.

Pros

  • Contribution

    Some open source software evolves rapidly because thousands of developers work with it and contribute solutions to the community.

  • Collaboration

    Virtual teams congregate around pieces of functionality, e.g., Drupal modules, and they collaborate on moving sub-projects forward.

  • Education

    Working with others at different levels of competence is a sure way of improving one's skills. Some communities even have formal mentoring programs.

Cons

  • Governance

    Due to the size of some communities built around open source software, there is a need for a formalized structure of governance. Sometimes things get a bit too bureaucratic and democratic.

  • Slow pace

    The process of accepting features or proposals for improvement may be very complicated and long. Sometimes this may cause apathy for the authors of such proposals.

  • Dissent

    Like every organization, there will always be times when people disagree. The difference between communities lies in how they are able to cope when there is discord.

Conclusion

Remember, free software refers to your rights not that you do not have to pay for it. It offers you the freedom to use, modify and distribute it with the same rights and freedom passed on to subsequent users of any software derived from it.

Further Reading

  1. Open Source Initiative
  2. The Open Source Definition
  3. What is Copyleft?
  4. Free Software Foundation
  5. Comparison of free and open-source software licenses

KEEP MOVING FORWARD

Deji Akala / code