Topic 3: Community

Definition of OSS

An open source software (OSS) is a software with source code available to everyone to view, use, enhance and adapt to their needs. Source code is the written instructions of a computer program, which can be changed to alter how the program works. For a software to count as an OSS, it should have an open-source license.

Programmers can modify and redistribute OSS for free or for a fee. However, as the open source license requires the release of the source code when they sell software to others, some programmers find it more profitable to charge users money for software services and support (troubleshooting, for example) and keep the software free.

Proprietary vs Open Source community

Proprietary software is software whose source code is privately owned and controlled, for example, Microsoft Office and Adobe Photoshop. Only the original creators or copyright holders are allowed to modify, inspect, or distribute it. Users agree to strict licensing terms that prevent them from altering or redistributing the software. Proprietary software is typically developed by a closed team, with decisions and contributions limited to employees, resulting in less community involvement and fewer external perspectives.

In contrast, open source software is designed to be more transparent and collaborative, with its source code freely available for users to view, modify, and share, provided they comply with open source licensing terms. The community of volunteers drive innovation, identifying bugs, and improving code quality. Contributors from diverse backgrounds can freely collaborate, share insights, and shape the direction of the project, creating a more transparent and inclusive development process.

This encourages me to contribute to OSS and be part of a community where I can work and learn from different developers on projects that share my interests.

History of open source

In the 1950s and 1960s, programmers and developers shared software to learn from each other and advance the field of computing. However, during the 1970s and 1980s, computer code was viewed as a unique intellectual property subject to copyright protection. This shift led to the development of the independent software publishing industry, with proprietary source code as the primary source of revenue.

In 1983, a rebellion against the restrictions and limitations of proprietary software began. Programmer Richard Stallman supported the idea of freely available software for customisation, as he believed users should be able to modify software to suit their needs.

Stallman founded the Free Software Foundation and pioneered the first copyleft software license, the GNU General Public License (GPL). The GPL required anyone who enhanced Stallman’s source code to publish their edited version freely to all. However, many felt that Stallman’s term “free software” inaccurately emphasised “free of cost” as the primary value of the software. Consequently, the term “open source” was adopted in 1999. 

Examples of formal roles used in open source projects

Maintainers are individuals responsible for overseeing an open source project’s health, direction, and quality. They manage contributions, guide the project’s roadmap, and often have commit access, but their role can also include writing documentation, promoting the project, and fostering community growth.

Contributors are individuals who add value to a project by submitting code, reporting bugs, reviewing pull requests, organising events, or engaging in discussions. They can range from occasional participants to regular collaborators with merged pull requests.

A committer is someone with the authority to directly merge code changes into a project’s repository.

Reflection

As I plan to pursue a career in Artificial Intelligence (AI), I recognise the essential role that open source collaborations play in this field.

Open source AI enables contributors to share their expertise, identify and resolve issues, and collectively contribute to the rapid development of this technology.

AI models generally fall into two main categories: proprietary models, like OpenAI’s ChatGPT, and open source models, such as Meta’s LLaMA. As building, training, and maintaining models is costly, providing access to pre-trained models saves developers time and resources and allows them to fine-tune models to their needs.

Additionally, open source AI promotes transparency, accountability, and inclusivity. With openly available source code, developers can inspect systems, identify potential vulnerabilities, and address them efficiently. This open approach reduces the risk of hidden biases and unintended consequences, as the broader community can examine the data and methods used to train the models.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *