This doesn't work well for UI improvements for a very specific reason, which is that most of the UI criticisms of free software are about how it's difficult to learn rather than how it's difficult to use after you've learned it. So by the time you've spent the effort to learn the existing UI well enough to know what changes to make to it, you no longer have a personal incentive to make it easier to learn, because you've already paid the time cost of learning it.
But that isn't user-hostile, it's newbie-hostile, which is different. In particular it means that if you're willing to put in the time to get over the hump, you end up with software that actually does exactly what you want, even if the incantations to get it to do that aren't always initially intuitive.
"First they ignore you, then they laugh at you, then they fight you, then you win" -- Misattributed
> horrible user interfaces and is every bit as user-hostile as for-pay software
This statement is laughable. A poorly designed UI is not equivalent to a UI filled with dark patterns. I was asserting that free software is a known solution to user-hostile software, not a solution to bad UI.
Do you really think being confused about how to rebase in git is the same as being tricked into creating an online Microsoft account instead of a local account when installing Windows? Or being tricked into buying some TurboTax add-on that you didn't want or need, and can't refund without wasting 2 hours on the phone?
The solution to the git problem is to read the documentation. Nobody is actively trying to prevent you from solving your problem, the designers are just bad at UI design. The solution to Microsoft's problem is to realize that it's intentionally user-hostile, and you have to find a workaround that they don't want you to use, like temporarily disconnecting from the internet. The solution to the TurboTax problem is to just be vigilant and paranoid and exhausted at all times.
The git situation is unfortunate. The Microsoft and TurboTax situations are stupid user-hostile bullshit. They're not even remotely equivalent.
I'm going to stick to my principles and continue working to create the software future that I actually prefer. I won't tell you to "just fork it and fix it yourself" like some other people might -- you're free to take the short term perspective if you prefer. You're free to laugh at me and others if you prefer.
But in the long run, your perspective is wrong. Free software is like a steamroller. It's slow, but it's slow because the people building it observe what's being built around them and tend to take the longer route of building it correctly rather than just cranking out whatever makes investors happy.
In the long run, the git UI will be improved, or an better replacement will turn up. Microsoft's telemetry, on the other hand, will never go away.
If you look at the discussions on the mailing list, you'll see people care a lot and make thoughtful decisions about the user experience, it just isn't aimed at the people for whom no possible user interface change would be helpful, because they don't know what's going on and don't read documentation.
> if any of that does turn up, you never lose access to the last-good version and source, in case you or someone else wants to fork it.
I believe we could partially solve this problem if we could better support the work-a-day developer with a great idea, who either doesn't have the risk profile to quit their job or doesn't have the free time to slave away in their home after their normal job. These people tend to be the programmer/engineer who worked in one or several companies in a similar industry, has seen the mistakes and insights from each, and can visualize a better data structure for a common operation in this industry, or perhaps even a new operational model that works more efficiently for optimizing some common problem.
However, those developers just don't have the incentive/drive/motivation to do it, and usually that's because their method of survival is to sell their time to another person/corporation in exchange for money that can be used to buy food, shelter, etc. and thus they are too tired, too demotivated, or perhaps they just want to spend some time with their family and friends. Whatever the reason, if you allow them some more of their free time to work on other stuff, these developers will come up with amazing things. There is an argument that some make about the "laziness" of developers who can't do a job and become a CEO of a startup and have a family, but why insinuate or argue that they're too lazy and unworthy when we could un-block their "laziness" and get great results for humanity? (My view is that no one is "lazy", just that some people have a higher "activation energy", but once they are "activated" most people will work as hard as the next.)
Also, I personally think software serving the interests of one person is going to be generally better than software serving the interests of greed, but I have no evidence, just a feeling from my life experiences.
The constant hustle culture is extremely toxic. We don't live to work. And indeed making something of value requires a significant investment of energy. That shouldn't come for free and shouldn't be expected of the "community" to always play catch up with big and dedicated -- and very handsomely paid -- development teams in a corporation.
Sorry, but this is laughable. Instead of self-serving greed, you have self-serving "what interests the person writing it." That leaves us with open source software that has horrible user interfaces and is every bit as user-hostile as for-pay software. (For example, see the recent arguments about git's UI in this thread[0].)
[0] https://news.ycombinator.com/item?id=24374268