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!

    • losttourist@kbin.social
      link
      fedilink
      arrow-up
      16
      ·
      1 year ago

      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.

      • TheLemming@feddit.de
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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

    • KrokanteBamischijf@feddit.nl
      link
      fedilink
      arrow-up
      15
      ·
      1 year ago

      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.