6.5 - Open Source & Proprietary Software
The role of software licences
Software licences form a legal agreement that permits individuals or organisations to use a piece of software. These licences, supported by copyright laws, determine how the software can be used, modified, or distributed.
Companies rely on licences to protect their intellectual property. They specify rules such as whether users can alter the software or share it with others.
Key terms in software development
- Source code - The original programming instructions that create the software, showing exactly how it functions.
- Compiled code - The processed version of the software (e.g., an .exe file) that runs on a computer, without revealing the underlying source code.
Features and examples of open source software
Open source software provides users with free access to its source code, allowing them to view, modify, and redistribute it under the same terms as the original. This approach promotes collaboration and innovation, as anyone can contribute improvements.
The source code is openly shared, enabling users to create custom versions or "spin-offs". Popular open source projects often benefit from active online communities where users discuss ideas, report issues, and suggest fixes through forums.
Examples of open source software
- Apache HTTP Server - Used to run web servers.
- GIMP - An image editing tool.
- Mozilla Firefox - A web browser.
- VLC Media Player - A versatile media playback application.
- Linux - An operating system first released in 1991, with variants like Ubuntu, Debian, and Android (used in many mobile devices).
Advantages and disadvantages of open source software
Open source software offers flexibility and community-driven development, but it also comes with potential drawbacks depending on the project's scale and support.
Advantages of open source software
- Cost-effective - It is usually free to use and distribute.
- Community-focused - Developed for public benefit rather than profit, fostering collaboration and idea-sharing.
- Customisable - Users can modify the source code to suit specific requirements.
- Innovative - Contributions from a diverse group of developers often lead to creative solutions beyond what a single company might achieve.
- Reliable for popular projects - Active communities quickly identify and fix bugs or security issues, making well-supported software secure and dependable.
Disadvantages of open source software
- Inconsistent updates - Smaller projects may lack regular maintenance, leading to unresolved bugs or security vulnerabilities.
- Limited documentation - User guides and instructions might be incomplete or hard to find.
- No guarantees - There are no formal warranties if problems occur.
- Variable support - While community forums provide help, there is no dedicated customer service.
- Code visibility - Businesses creating custom versions must share their source code, potentially exposing ideas to competitors.
Features and examples of proprietary software
Proprietary software, also known as closed source software, releases only the compiled code to users, keeping the source code confidential. This restricts how the software can be modified, copied, or shared.
Licences for proprietary software typically require payment and impose strict rules to protect the developer's rights. Businesses often prefer it for its structured support, making it common in professional environments.
Examples of proprietary software
- Microsoft products - Such as Office (for productivity), Windows (an operating system), and Outlook (for email).
- Adobe products - Including Photoshop (for image editing) and Illustrator (for graphic design).
Advantages and disadvantages of proprietary software
Proprietary software provides polished, supported products from established companies, though it can limit flexibility and involve higher costs.
Advantages of proprietary software
- Comprehensive support - Includes warranties, detailed documentation, and dedicated customer service.
- High reliability - Thoroughly tested to maintain the company's reputation, with regular updates and fixes.
- Cost-efficient alternative - Often cheaper for businesses than building custom software from scratch.
Disadvantages of proprietary software
- Higher expense - Users typically pay for licences and updates.
- Limited adaptability - The software may not perfectly match user needs, and modifications are not allowed.
- Potential obsolescence - Companies might stop supporting older versions after warranties end, encouraging purchases of newer products.