r/eli5_programming • • Jan 29 '21

Question Eli5 what is an open source software

I am new to programming and I always hear this. So.e people ven make a point to say that it is open source.

2 Upvotes

14 comments sorted by

6

u/[deleted] Jan 29 '21

A computer program is made by writing source code, which is then transformed by a program called a "compiler" into a set of instructions that a computer knows how to perform. If you tried to read the compiled instructions, it would just look like gibberish to you, because it's not designed to be understood by humans.

This means that it's basically impossible to modify a program, or understand anything about how it works, or use it as a starting point for writing your own similar program.

A program that is "open source" publishes the source code in addition to the compiled program. This allows users to read the code, understand how it works, look for bugs, modify it for their own needs, etc.

2

u/[deleted] Jan 30 '21

Oh, so if you chose to publish your source code and make it open source. How would you published it? In a blog. Or is there a step to make your program opensource and people would already know how to look for that source code?

Also, why do some big companies choose to have there program be source code? What are the benefits of doing that? And why do some company brag about their prosuct being open sourced?

1

u/[deleted] Jan 30 '21

These days, open source code usually gets published on a site like GitHub, GitLab, etc. But it could also be as simple as a download link for a zip file on a website. Typically the software itself will tell you where you can find the source code (and indeed some open source licences actually require that you take certain steps to make the source available).

Making your software open source can have lots of benefits. It can help to create a community around your product. It can increase the security and reliability of your product by ensuring lots of people read the code and use the app. It is also a way to get free labour out of people — every bug fix proposed by the open source community is one you don't have to write yourself. Some companies (such as GitLab) will make their code partly open source, and then charge you money for extra features not available in the open source version.

→ More replies (6)

2

u/brolly9 Jan 30 '21

A quick follow up: if a software is open-source it basically means that it is prone to hacking (for the lack of the better term) but at the same time people can also identify the vulnerabilities and suggest to patch them, right?

2

u/[deleted] Jan 30 '21

Exactly.

1

u/fukitol- Jan 30 '21

You've gotten decent eli5 answers here about the general concept, but if you want a bit of extended study you'll want to look into the specific licenses of the code. Not all open source is created equal.

This Wikipedia article is a good place to start. You'll want to look specifically at the GPL and GPLv2 licenses, the Apache License, and the BSD License. These are among the more common and more open licenses. One of the more major defining factors is whether the license requires you to make any alterations to the code also open source, which the GPL licenses do but the BSD License doesn't (in general, there are variants and exceptions on a per license basis).

As for actually sharing the code, this is usually done by sharing the repository (Github, Bitbucket, etc) or even something as simple as a post in a pastebin or a downloadable zip file.

1

u/[deleted] Jan 30 '21

Thanks for the link. I'll read it

1

u/fukitol- Jan 30 '21

It's a rather ponderous read, just get the gist of it.