Part of the reason Open Source eclipsed Free Software was that it actually delivered on the promise. Open Source aimed squarely at corporate buyers. They didn't hear open[ly available] source [code], they heard open [to competitive tender second] source. And that's a great economic argument for a company that uses a load of software. Companies love having second sources, because two competing vendors are less likely to lock you in and price gouge. An open field of an unbounded number of second sources makes accountants very happy.

Free Software, in contrast, promised user empowerment. It came with a set of freedoms and the guaranteed rights to make the software do what you wanted. You, the end user, weren't to be constrained by the set of things that a vendor decided your computer should do. It could do whatever you wanted, you could build on the work of others to do it, and you could subsequently share your work to further empower other people.

And almost no F/OSS delivers on that promise. I have a PhD in computer science. I'm on the C++ standards committee. I have written code in OS kernels, compilers, and some of the lowest-level bits of modern systems. I've also written bits of a GUI toolkit, text layout engines, and other bits up and down the stack, even the occasional bit of JavaScript for the web. And yet, to me, most F/OSS applications are simply black boxes. If they don't do what I want, I have no more chance of modifying them than I do MS Office or macOS (actually less, because both of those have rich scripting environments). The only benefit I have is that it didn't cost anything, but my time is valuable and I'd happily pay a little bit for something that was a closer approximation of what I want from a computer.

Imagine how it looks to someone who doesn't program for fun.

And what does the FSF do to address this? It gives the world a more complex software license. Because surely that will be the thing that finally makes all software empower users! The fact that now exercising the four freedoms with their software comes with more legal risks will obviously make more people realise the benefits of them!

People who are serious about Free Software should look back to Smalltalk and Lisp systems, where every part of the system was introspectable and mutable. They should look at the amazing research in the last couple of decades on approachable end-user programming languages. They should abandon siloed app abstractions that exist to keep people locked into single-vendor ecosystems and build small, modular, reusable, components. Computers could be so much better than they are, and Free Software could enable system designs that are impossible with a COTS proprietary model.

EDIT: To be completely clear: I am 100% on the Free Software side of this. I want computers to empower users and I want to remove obstacles to this. I just think that almost everything the FSF has done since the publication of the first version of the GPL has been a hinderance to that agenda.

@david_chisnall all I can say is that I simply do not have that problem

If a FOSS thing doesn't do what I want it to do, I just make it do what I want it to do. It's not a black box. I genuinely do not see the problem

I understand if it is a problem for non-programmers, but I do get bewildered by programmer entities responding to me saying just add a deviceid bailout to the probe of amdgpu, seems there's no built-in blacklist for the probing by staring at as if I spoke French or something despite that being literally 15 minutes of work.

Or like, the WebKit CSS engine doesn't do what I want, so I just... Clone the repo, find the impl of the thing, fix it. Done. Doesn't matter I don't even know CSS that well or that I never touched WebKit before this.

Or, Firefox strips leading dots from file names it saves. I even wrote a blog post about it https://itycodes.org/FirefoxSaveAs.html, it was about 30 min of work iirc.

Or, Android network settings doesn't let me change the DNS server without turning off DHCP. Clone the relevant repos, and just look around with grep for a bit. Mod it to, idk, read a config file or something, done.

QEMU dir passthru mishandles permissions. Find the function, write the 10 lines to fix it.

I could keep going, but the point remains the same, there's no black boxes. It's code you can read, modify, debug, fix, change. Doesn't matter if it's a web browser, device driver, Android, compiler, debugger, the JVM, VS Code, IntelliJ IDEA, whatever else. It's FOSS code.

I simply do not comprehend how are any FOSS projects black boxes if you know how to code. This is not meant as any kinda mean remark or whatnot, this is genuine confusion. What is stopping you from just cloning the repository of whatever FOSS project you want to change the behavior of, reading its code and modifying it to do what you want? I know that nothing is stopping me, as I already do exactly this to pretty much every program on my system that annoyed me. My collection of .patch files (I run Gentoo now) grows at a rate of a few per day. I do this for years, though only recently I actually keep the patches around.

So what is stopping others? Like, this "FOSS is still just black boxes" sentiment is a thing I still hear a lot, but it is esp. confusing coming from a fellow kernel dev.

Firefox Save As Code Digging

@david_chisnall is it a question of being busy with other things, and rather complaining about it being needlessly annoying to make software do what it should rather than it actually being a black box, and the black box thing is some kinda strange hyperbole for "I'm too busy" ?