I don’t know (but wanna learn) programming, but, for example, can’t you inspect the code of an app if it’s installed?
(yeah this is kind of a stupid question.)
EDIT: Thanks for the clarification, guys!
I don’t know (but wanna learn) programming, but, for example, can’t you inspect the code of an app if it’s installed?
(yeah this is kind of a stupid question.)
EDIT: Thanks for the clarification, guys!
No.
First, “open source” doesn’t just mean “you can read the source”; it means that you have rights to modify it and make new versions too.
Second, compiled programs (e.g. most programs you run on a phone or a desktop PC) do not have source available for you to read.
Ah, that makes sense, thanks for clarifying.
It’s not a perfect analogy, but a good way to think about it if you’re not a programmer is to say “why do we need recipes when we can just buy a product in the store and read the ingredients list”.
Just because you know the ingredients, that doesn’t mean you know how to put them together in the right order, in the right quantities, and using the correct processes to recreate the finished product.
If a 5star chef is making a dish, I wouldn’t know what they put in it anyways, so I think this analogy still works.
If they would show me the recipe/source code, I probs would be astonished, like “Oh yeah, now I can taste the $(whatever ingredient) in it!”, but wouldn’t be able to put it together like them
Going into a little more detail:
There are plenty of ways to do open source, and the differences mostly come down to the license something is published under. Some licenses prohibit redistribution, while others restrict commercial use. One of the more popular permissive licenses is the GNU General Public License (or GPL for short). Which you can read up on over here.
Technically there’s nothing stopping you from ignoring the terms of the license agreement and just doing whatever. Think “agreeing to the terms without actually reading them”. While the licenses are usually proper grounds for legal action, it depends on the project and the resources associated wether actual legal action is within the realm of possibilities.
When it comes to “everything is open source”, you’re technically correct in the sense that you can reverse engineer everything and the amount of work you’re willing to put in is the only limiting factor. Compiled code and techniques like code obfuscation and encryption will pose barriers, but they will not protect from someone determined to get in. In the same way a door lock will not protect you from someone who brings a blowtorch.
Some code is technically not open source, but is delivered in human-readable form. This is the case for things like websites and scripts in languages like python. Other software is compiled (pre-converted to specific instructions for your processor), and is delivered in binary, which is not particularly human-readable. But with the right tools even binary applications can be “decompiled” and converted into something slightly more closely resembling the original source code.
A great one liner from the YouTube channel Low-level Learning is “everything is open source if you can read assembly”.
So, in summary: It depends how you look at it, generally speaking open source means that te source code is available for the public to see and that you’re free to submit any suggestions or improvements to the code, no matter who you are. In practise the source code is sometimes visible (out of technical necessity or for troubleshooting purposes) even though the product is not open source, in which case the end user license agreement will likely contain a clause prohibiting you from doing anything with it.
Open source means you can read the source, Free software means you can modify and redistribute.
Well, no.
The term “open source software” was specifically invented to refer to the same set of software licenses as “free software”; but with a different political angle.
Really. You can look it up.
I remember reading the opposite back in the day, that this is why RMS dislikes the term “open source” and prefers “Free software” as more descriptive. Open source refers to software where you can read the source, but the license it’s under does not necessarily gaurantee freedom to the user.
The people who coined the term “open source software” disagree, though. They’re allowed to be right about the use of their own term.
(And extensionally, the set of software licenses accepted as “open source” by the “open source” people, and the set accepted as “free software” by the “free software” people, are the same set of licenses. Both agree that Microsoft “Shared Source” is not in this set, for example.)
I’ll take your word for it :)
But the same people who coined that term made some software “open source” but under licenses that only allow looking, not touching.