Source Code Is Not EnoughThe fine print in FOSS promises
Published on 26 October 2022
Last updated on 03 November 2022
Premise A program is free software if the program's users have the four essential freedoms:
The freedom to run the program as you wish, for any purpose (freedom 0).
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help others (freedom 2).
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
— What is Free Software?, gnu.org
People will often claim that since X is Free and Open Source Software, every user of X is enabled to hack on it and bend it to their will.
I will argue that this is rarely the case1; after so many hours of doom-scrolling the orange website, the contrarian in me is finally taking over.
https://fuzzypixelz.com/blog/source-code-is-not-enoughMpVpRb 208 points 11 hours ago
The FOSS principles are great in theory and I strongly support them
In practice, complex software takes a LOT of time, effort, talent and experience to understand. This is an extremely high barrier that prevents many people from successfully modifying an open source codebase
crazyhadron 95 points 10 hours ago*
I've found that if you use a library often enough, you start to understand the way it works and can provide patches yourself.
Of course just making PRs on random FOSS projects willy-nilly isn't gonna end well, but for ones you're are familiar with, it's no different than maintaining your own projects.
Edit: typo
guleblanc 16 points 6 hours ago
I've never found maintaining my own code to be easy. I've only worked on commercial codes, like database internals, compilers and debuggers, though one database was nominally open source. Everything I worked on was complicated. Writing unit tests to maintain compatibility is very time consuming. There is very little greenfield development, so making your new stuff not break the old stuff is often tricky. Sometimes you just can't make changes because the house of cards is too unstable, and the cost and risk of a total rewrite is too high. Looking at open source codebases makes me think it's more true for them.
I once heard RMS in a talk say "Comments obscure code." I've certainly never found any of his code easy to understand, but I've only looked at GCC, and I think he hasn't been actively involved in it for a long time. That is just conjecture in my part.
https://old.reddit.com/r/programming/comments/ym1u5p/source_code_is_not_enough