What is Open Source Software?
Collaboration is key in the development of open source software.
CREDIT: kentoh | Shutterstock
Most applications sold are compiled and ready-to-run versions. Compiling software allows the developer to translate the code used to develop software into something a computer can understand. While this allows a developer to control the quality and features of the program and protect against third-party tampering, it does create some limitations for long-term software growth.
Open source software operates on the other end of the spectrum, instead choosing to make the development code available to anyone for contributions of their own. This allows for the original application to be modified and enhanced to suit the diverse needs of each user.
What makes an application open source?
Many software developers want to create an application that allows any interested developers to modify the source code and make it more error-free or useful to the public. Alterations to the original source code are highly encouraged, even if the resulting changes make the finished product completely different from the original application.
But creating an application that can be considered open source requires the fulfillment of several key criteria:
- The application must be available for distribution free of charge
- Source code should be included
- Any user must be allowed to modify the source code
- Modified versions of the source code can be redistributed
- The application cannot interfere with the operation of other applications
The advantages of open source
While the motivation behind using and developing open source software varies between users, it serves a practical purpose. The application acts as a combined effort between multiple developers. Collaboration becomes key to the continuation of open source applications as many developers work together to create solutions and work through issues. The main appeal behind open source includes the following points:
- The availability of source code and the right to modify it
- The right to redistribute modifications and improvements
- The right to use the software in any way, free of restrictions
- The software does not depend on any single entity
- The software cannot be sold for monetary gain
- The direction of future versions is determined democratic forums
The free and unrestricted elements prove to be very popular among developers as this allows them to embark on journeys of discovery and experimentation.
The difficulty of open source
One main problem encountered by many end users with open source applications is the lack of technical support. Such software typically encourages modification and customization, which makes it quite difficult to support. When countless changes make each version of an open source application different, no one company can offer a solution.
One company, Red Hat Software, saw the need for a service that offered support and warranties to individuals using Linux. They created the “official Red Hat Linux” and offered support services which enabled them to sell this software which was generally free. The reassurance of technical support proved quite popular among many companies who then took to buying from Red Hat simply for the perk of troubleshooting.
The history of open source
The concept of information sharing, the basis upon which open source gains all credence, dates back to before technology such as computers even existed. With the emergence of computer technology, open source was common as early as the 1950s. Software-sharing communities existed in such locations as universities simply because all software produced by computer science academics and corporate researchers occurred in collaboration.
This approach to software development came about out of necessity due to the diversity of computer software requirements. In the 1960s, software production costs greatly increased due to competition against hardware manufacturers’ bundled software products. Throughout the 1970s and 1980s, computer vendors and software companies took up the practice up charging for software licenses and created legal restrictions on any software modifications. Many developers in the academic and hobby arenas chose to continue developing their own applications for free use and without licensing. While closed source applications tend to boast a higher quality product than open source, they don’t often offer the same flexibility as open source.
Example of open source applications
One very prominent example of an open source application is the Linux operating system. In 1991, computer science student Linus Torvalds developed an operating system based on UNIX. He later released version 0.02 under the GNU General Public License, which adds a lot of legal definition to open source code.
Developers around the world began to develop the source code and worked with it, creating hundreds of derivations to the original application. Over the years, Torvalds was sent many of these modifications and he incorporated the changes into what then became the baseline version of Linux 1.0 in 1994.
Firefox is another example of open source software. This free Web browser was developed by the Mozilla Foundation in 2004. It has gone through many versions (18 as of January 2013) and has also gained in popularity. As of January 2013, Firefox had more than 450 million users around the world — about 20 percent of worldwide usage share of web browsers.
While open source has been a common development strategy for collaboration, it struggles to gain the same traction as closed source software due largely to support limitations. It encourages collaboration and modifications, though for non-developers such a strategy becomes a risky business decision.