Understanding Open Source

First there is an oversimplified (or rather idealized) view of the open-source software movement in general. It is a decentralized global effort to build a better or at least good software by motivated enthusiasts who are willing to contribute one's own time to write or improve the source code of a project in a publicly available shared repository.

The terms of services and conditions are defined the license which comes with the copy of the source code. The ownership of the code is informally declared to the list of authors and contributors, while generally it could be defined as being in a public domain.

Nowadays usually there is a core team of volunteers who maintain the codebase, do core-reviews and reject lame or malicious commits from pseudo-anonymous contributors.

Use it

Ideally, at least in theory, open-source software is being written and maintained because authors and contributors are using it on a daily basis to solve real-world problems. Various Bitcoin tools is a canonical example.

Improve it

In theory, an open-source project gets bug fixes, improvements and even new features from various people who are either unsatisfied with the current code or wished to improve the code for various selfish reasons.

This is quite natural and, perhaps, is related to the communal lifestyle of our ancestors - we tend to share environment and fix and improve our shared environment when it does not cost us too much.

My personal interest

The best thing about open-source software is that, at least in theory, you could do whatever you want with it. Suppose you want to have some new feature in a open source software you are using for your own benefit. Well, there is an obvious way - you could write the code that implements the feature you want and send it to the public repository to be added, so your code will be tested, reviewed, fixed or even improved by many other users, which is the way to leverage the law of big numbers.

At least you could try to submit an initial patch with includes detailed description of the feature and argumentation why it is good to have. Then the other users could help you implement it or even write it for themselves.

This is exactly how it works for big corporations. Want to your drivers to be added into the Linux kernel, well, write them and submit them for review. It the code is decent and there is a demand for the driver it will be added and reviewed and tested.

So, you are using pwiki:/Languages/Scala Scala] and want a better Scala compiler, well, at least try to find out how exactly it could be improved and try to convince other users that it is what they need. This is how it works in the open-source ecosystem in general.

The most important thing here is that if you are contributing something really useful it will be reviewed, tested and improved by many other people. Otherwise you have to pay other people for their time.

The law of big numbers is a powerful one.

Last modified 2 years ago Last modified on Dec 29, 2017, 3:28:18 PM
Note: See TracWiki for help on using the wiki.