Open Source refers to at least two things. First, it is a trademark of the Open Source Initiative®, and a license that Open Source Initiative® grants to Open Source Software (OSS) that meets certain criteria, called the Open Source Definition. There are, however, other ideas about open source software that do not hold to the same standards and offer open source software under different types of licenses. One thing that all open source software has in common is the availability to the user of the source code, which means that the user can see exactly how the application or program was coded and often is allowed to modify it. Depending on the type of license it has, users may be able to modify and redistribute open source software.
Whatever type of license it comes with, open source software is a counterpart to proprietary commercial software. Proprietary commercial software is predicated on one company developing and owning the source code. The product license allows the user to use the product as made by the commercial enterprise. In some cases, users are allowed and/or encouraged to create plug-ins or add-ons to enhance proprietary commercial software, but there are limits on what they are allowed to do. This is to protect the software developer’s investment.
There are several goals behind the open source software movement. One thought is that the separation of software development from the profit motive will encourage developers to do what is best for the software and the users, leading to products that have increased usefulness and fewer bugs. It is also believed that peer review without constraints of a commercial release date, will contribute to software that continues to be upgraded constantly, rather than having carefully timed major releases that do not occur very often, leaving users with buggy software in between. Another consideration is that by opening up the code, a large number of developers, each of whom may have thoughts about improving the software will bring their particular skills and insights, as well as their time, to contribute to the process, speeding up the development and taking it in many directions, broadening the software’s scope.